当我放入role="main"
元素textarea
时:
<textarea role="main" aria-label="text area"></textarea>
当我点击“r”或“q”时,屏幕阅读器 (JAWS) 不会为我读取该区域。
当我将地标属性设置为父 div 时 - 它正在工作。
输入中不支持地标吗?
当我放入role="main"
元素textarea
时:
<textarea role="main" aria-label="text area"></textarea>
当我点击“r”或“q”时,屏幕阅读器 (JAWS) 不会为我读取该区域。
当我将地标属性设置为父 div 时 - 它正在工作。
输入中不支持地标吗?
ARIA 角色和 aria-* 属性可以应用于 HTML 元素,只要它们不与 HTML 元素的强大本机语义冲突。这是设计使然,原因是为了防止作者向辅助技术传达错误/误导性信息。
HTML 5.1 规范的 WAI-ARIA 部分给出了textarea
元素的强大原生语义,如下所示:
textbox
角色,aria-multiline
属性设置为“true”,aria-readonly
如果元素具有readonly
属性,则属性设置为“true”
应用role="main"
atextarea
会与文本框角色冲突,因此会被忽略。
这无论如何都行不通。
地标(或区域)被设计为屏幕阅读器可以访问,因此用户会知道它从哪里开始,在哪里结束,并且他/她可以轻松地移动到该区域。
与其他输入一样,textarea 是一个表单域。当您登陆表单域时,您将进入所谓的表单模式。这意味着您可以键入文本,而r键实际上会在屏幕上键入“r”字符,而不是移动到下一个区域。
所以像 main、region 等角色在除了 div 类元素和段落之外的其他元素上是没有意义和无用的。