html - 文本字段中“达到的最大字符数”的可访问性
问题描述
我有一个最多只能包含 15 个字符的文本字段。我包括aria-label
说“名字(最多 15 个字符)”。我还想在达到最大字符并且他们无法进一步输入时提醒用户。
最好的方法是什么?
屏幕阅读器似乎不支持maxlength
.
解决方案
不幸的是,你必须解决这个问题。屏幕阅读器应该尊重该maxlength
属性并为您宣布限制,并定期告诉用户还剩下多少字符。但是在标签中设置最大值对所有用户来说都是一个好习惯。
即使您达到最大值,屏幕阅读器也会在您输入时愉快地提供反馈。这很糟糕,我认为这是屏幕阅读软件中的一个错误。
由于您的字段只有 15 个字符,因此您可能不需要在它们到达末尾之前提供反馈。如果您有 100 个字符,那么在更新的字段下方有一个“剩余 X 个字符”标签,例如每 20 次击键会有所帮助。
现在,您可以拥有一个aria-live
区域,当达到最大值时,您可以向其中注入文本,说明已达到限制,或者您可以取消隐藏该活动区域的子 DOM 元素。无论哪种方式都将公布文本。
<span aria-live="polite" id="myid">
<!-- insert text here from javascript when max reached -->
</span>
或者
<span aria-live="polite" id="myid">
<!-- unhide me when max reached -->
<span style="display:none">You've reached the max</span>
</span>