咏叹调 - 多线目的

时间:2014-07-21 12:27:43

标签: html html5

我从这个网站[网站]上读到: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>

由于

2 个答案:

答案 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"/> - 它将在回车键上提交表单,并且不会跳转到第二行。