1

当我放入role="main"元素textarea时:

<textarea role="main" aria-label="text area"></textarea>

当我点击“r”或“q”时,屏幕阅读器 (JAWS) 不会为我读取该区域。

当我将地标属性设置为父 div 时 - 它正在工作。

输入中不支持地标吗?

4

2 回答 2

3

ARIA 角色和 aria-* 属性可以应用于 HTML 元素,只要它们不与 HTML 元素的强大本机语义冲突。这是设计使然,原因是为了防止作者向辅助技术传达错误/误导性信息。

HTML 5.1 规范的 WAI-ARIA 部分给出了textarea元素的强大原生语义,如下所示:

textbox角色,aria-multiline属性设置为“true”,aria-readonly如果元素具有readonly属性,则属性设置为“true”

应用role="main"atextarea会与文本框角色冲突,因此会被忽略。

于 2014-03-30T14:23:04.613 回答
1

这无论如何都行不通。
地标(或区域)被设计为屏幕阅读器可以访问,因此用户会知道它从哪里开始,在哪里结束,并且他/她可以轻松地移动到该区域。
与其他输入一样,textarea 是一个表单域。当您登陆表单域时,您将进入所谓的表单模式。这意味着您可以键入文本,而r键实际上会在屏幕上键入“r”字符,而不是移动到下一个区域。
所以像 main、region 等角色在除了 div 类元素和段落之外的其他元素上是没有意义和无用的。

于 2014-03-30T13:13:29.363 回答