我从这个网站[网站]上读到:http://msdn.microsoft.com/en-us/library/windows/apps/hh968006.aspx
aria-multiline是提供多行属性。
但是,当我应用于文本框时,它似乎不起作用。任何人都可以告诉为什么。我还有一个问题,任何人都可以告诉我这两个元素之间的区别
<textarea rows="4" cols="50" id="text"></textarea>
<textarea rows="4" cols="50" aria-labelledby="aria-text-label" id="aria-text" role="textbox" aria-multiline="true"></textarea>
由于
答案 0 :(得分:1)
ARIA属性是声明性的(提供信息的)。它们通知浏览器,尤其是辅助软件具有的功能属性元素,主要是由于处理它们的JavaScript代码,而不是使元素具有功能属性。例如,如果您使用JavaScript将div
元素作为多行输入区域,则在该元素上设置aria-multiline="true"
是合适的。请参阅W3C WAI Primer。
因此,textarea
的属性是多余的(可以预期浏览器知道该元素是什么)。对于input type="text"
,可以使用它,但前提是您已设法将其转换为多线控件。
问题中提出的两个要素之间的差异是:
id
属性值。role
属性,该属性与默认语义匹配,不建议在Using WAI-ARIA in HTML中使用。 (这是允许的,但它可能会混淆那些阅读HTML源并误导他们认为它有一些影响的人。)id="aria-text-label"
的元素。这不是多余的,但使用label
element在正常的HTML标记中声明标签通常更好,更易于访问。答案 1 :(得分:0)
您是否阅读过Remarks
部分链接?由于textarea
默认为多行,因此设置aria-multiline="true"
将没有效果。此属性设置 ENTER 键的功能。在textarea中,aria-multiline="true"
时它将继续输入到第二行。但是,如果您为aria-multiline="false"
设置textarea
,它将作为<input type="text"/>
- 它将在回车键上提交表单,并且不会跳转到第二行。