我正在构建一个具有FontAweasome图标的积木。我目前允许用户使用WP选择哪个图标<SelectControl>
.
对于个人<option>
s、 有一种内置的方法可以添加标签。例如:
<SelectControl
value={ icon }
options={[
{ label: \'\', value: \'fa-address-book\' }
]}
/>
与CSS结合使用,效果很好-下拉菜单显示图标本身,便于视觉良好的用户选择。但是,我想通过添加
aria-label
对于每个
<option>
.
我试过了
<SelectControl
value={ icon }
options={[
{ label: \'\', value: \'fa-address-book\', \'aria-label\': \'Address book\' }
]}
/>
但是
aria-label
不会实际渲染。还有其他方法添加它吗?
我要查找的HTML输出:
<select id="inspector-select-control-0" class="components-select-control__input">
<option value="fa-address-book" aria-label="Address book"></option>
</select>
我也可以在标签本身中使用仅屏幕阅读器类,但是当我尝试这样做时
<SelectControl
value={ icon }
options={[
{ label: \'<span class="show-for-sr">Address book</span>\', value: \'fa-address-book\' }
]}
/>
<;和>;标签按字面意思显示在标签中,而不是创建实际的单独HTML
<span>
.
最合适的回答,由SO网友:Sally CJ 整理而成
我同意内森的回答,但你可以复制source 并创建自己的SelectControl
基于该源的组件。Here\'s an example, 基本上只有aria-label
添加内容:
<option
key={ `${ option.label }-${ option.value }-${ index }` }
value={ option.value }
disabled={ option.disabled }
aria-label={ option.ariaLabel || \'\' }
>
{ option.label }
</option>
和一个样本
index.js
演示自定义
SelectControl
组件:
import SelectControl from \'./select-control-custom\'; // make sure the path is correct
import { withState } from \'@wordpress/compose\';
const MySelectControl = withState( {
size: \'50%\',
} )( ( { size, setState } ) => (
<SelectControl
label="Size"
value={ size }
options={ [
{ label: \'Big\', value: \'100%\', ariaLabel: \'Aria label for Big\' },
{ label: \'Medium\', value: \'50%\', ariaLabel: \'Aria label for Medium\' },
{ label: \'Small\', value: \'25%\', ariaLabel: \'Aria label for Small\' },
] }
/>
) );
一、 e.使用
ariaLabel
属性/键来设置ARIA标签。以上是基于
the example here.