首页 > 解决方案 > 文本字段中“达到的最大字符数”的可访问性

问题描述

我有一个最多只能包含 15 个字符的文本字段。我包括aria-label说“名字(最多 15 个字符)”。我还想在达到最大字符并且他们无法进一步输入时提醒用户。

最好的方法是什么?

屏幕阅读器似乎不支持maxlength.

标签: htmlaccessibilityformsmaxlength

解决方案


不幸的是,你必须解决这个问题。屏幕阅读器应该尊重该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>

推荐阅读