【发布时间】:2017-10-18 14:41:53
【问题描述】:
我有一个时间选择器组件,由两个独立的 input 字段组成,它们共同作用以创造合一的错觉。
这就是骨架的样子
<div> {/* component container */}
<div> {/* container for hours:minutes */}
<input /> {/* hours */}
<input /> {/* minutes */}
</div>
<Select /> {/* custom React component, for AM/PM */}
</div>
对于“普通”用户来说一切都很好,但可访问性很差。
由于代码库中预先存在的限制,我很难将所有内容简单地包装在 label 中,这将解决我的问题。
我正在考虑做以下事情,我希望社区能就这对屏幕阅读器是否真的有用提供意见(哈哈!)。
<label htmlFor="myUniqueId">Here goes my label</label>
<div id="myUniqueId"> {/* component container */}
<div> {/* container for hours:minutes */}
<input /> {/* hours */}
<input /> {/* minutes */}
</div>
<Select /> {/* custom React component, for AM/PM */}
</div>
所以基本上,在容器上设置一个 ID,而不是输入,然后使用 htmlFor 附加标签。
这对屏幕阅读器有用吗?
【问题讨论】:
标签: html label accessibility screen-readers