Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
63520761
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
63520761
编写于
9月 06, 2018
作者:
C
Christopher Leidigh
提交者:
GitHub
9月 06, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
SelectBox: Add aria-describedby for enum descriptions. Fixes: #57710 (#58129)
上级
9abd6d02
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
26 addition
and
2 deletion
+26
-2
src/vs/base/browser/ui/selectBox/selectBoxCustom.css
src/vs/base/browser/ui/selectBox/selectBoxCustom.css
+4
-0
src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
+22
-2
未找到文件。
src/vs/base/browser/ui/selectBox/selectBoxCustom.css
浏览文件 @
63520761
...
...
@@ -78,6 +78,10 @@
white-space
:
nowrap
;
}
.monaco-select-box-dropdown-container
>
.select-box-dropdown-list-container
.monaco-list
.monaco-list-row
>
.option-text-description
{
display
:
none
;
}
.monaco-select-box-dropdown-container
>
.select-box-dropdown-container-width-control
{
flex
:
1
1
auto
;
align-self
:
flex-start
;
...
...
src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
浏览文件 @
63520761
...
...
@@ -27,12 +27,14 @@ const SELECT_OPTION_ENTRY_TEMPLATE_ID = 'selectOption.entry.template';
export
interface
ISelectOptionItem
{
optionText
:
string
;
optionDescriptionText
?:
string
;
optionDisabled
:
boolean
;
}
interface
ISelectListTemplateData
{
root
:
HTMLElement
;
optionText
:
HTMLElement
;
optionDescriptionText
:
HTMLElement
;
disposables
:
IDisposable
[];
}
...
...
@@ -47,6 +49,7 @@ class SelectListRenderer implements IRenderer<ISelectOptionItem, ISelectListTemp
data
.
disposables
=
[];
data
.
root
=
container
;
data
.
optionText
=
dom
.
append
(
container
,
$
(
'
.option-text
'
));
data
.
optionDescriptionText
=
dom
.
append
(
container
,
$
(
'
.option-text-description
'
));
return
data
;
}
...
...
@@ -57,7 +60,14 @@ class SelectListRenderer implements IRenderer<ISelectOptionItem, ISelectListTemp
const
optionDisabled
=
(
<
ISelectOptionItem
>
element
).
optionDisabled
;
data
.
optionText
.
textContent
=
optionText
;
data
.
root
.
setAttribute
(
'
aria-label
'
,
nls
.
localize
(
'
selectAriaOption
'
,
"
{0}
"
,
optionText
));
data
.
root
.
setAttribute
(
'
aria-label
'
,
nls
.
localize
(
'
selectAriaOption
'
,
"
{0}
"
,
optionText
)
+
'
,.
'
);
if
(
typeof
element
.
optionDescriptionText
===
'
string
'
)
{
const
optionDescriptionId
=
(
optionText
.
replace
(
/ /g
,
'
_
'
).
toLowerCase
()
+
'
_description_
'
+
data
.
root
.
id
);
data
.
root
.
setAttribute
(
'
aria-describedby
'
,
optionDescriptionId
);
data
.
optionDescriptionText
.
id
=
optionDescriptionId
;
data
.
optionDescriptionText
.
setAttribute
(
'
aria-label
'
,
element
.
optionDescriptionText
);
}
// Workaround for list labels
data
.
root
.
setAttribute
(
'
aria-selected
'
,
'
true
'
);
...
...
@@ -258,7 +268,9 @@ export class SelectBoxList implements ISelectBoxDelegate, IVirtualDelegate<ISele
const
element
=
this
.
options
[
index
];
let
optionDisabled
:
boolean
;
index
===
this
.
disabledOptionIndex
?
optionDisabled
=
true
:
optionDisabled
=
false
;
listEntries
.
push
({
optionText
:
element
,
optionDisabled
:
optionDisabled
});
const
optionDescription
=
this
.
detailsProvider
?
this
.
detailsProvider
(
index
)
:
{
details
:
null
,
isMarkdown
:
false
};
listEntries
.
push
({
optionText
:
element
,
optionDisabled
:
optionDisabled
,
optionDescriptionText
:
optionDescription
.
details
});
}
this
.
selectList
.
splice
(
0
,
this
.
selectList
.
length
,
listEntries
);
...
...
@@ -296,6 +308,14 @@ export class SelectBoxList implements ISelectBoxDelegate, IVirtualDelegate<ISele
public
setDetailsProvider
(
provider
:
(
index
:
number
)
=>
{
details
:
string
,
isMarkdown
:
boolean
}):
void
{
this
.
detailsProvider
=
provider
;
if
(
this
.
options
)
{
const
currentOptions
=
this
.
options
;
this
.
options
=
[];
this
.
setOptions
(
currentOptions
,
this
.
selected
,
this
.
disabledOptionIndex
);
}
}
public
focus
():
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录