【问题标题】:does angularJS use a different set of rules for ARIA?angularJS 对 ARIA 使用不同的规则集吗?
【发布时间】:2019-08-21 15:35:51
【问题描述】:

我正在更新网站以确保合规性。该网站主要是 AngularJS,我仍然是新手,但正在学习。我发现有一个针对 div 标签的标签但是标签没有 :for 属性,而是有一个 :id 并且 div 有一个针对标签标签的 :id 的 :label-id 的情况......当我尝试调整它,它在前端坏了,所以我不确定我看到了什么……我很好奇这是否会通过 WCAG AA?

我尝试了屏幕阅读器,NVDA,没有问题...但是我使用的爬虫将标签元素标记为没有 :for 属性...我尝试搜索 :label-id 属性但没有运气我猜这意味着它的习惯......我猜很多问题与我缺乏对angularJS的理解有关......

<div class="groupA">  
  <label id="elementA">Element A is for Apple</label>
  <div class"customSelectA" label-id="elementA">...stuff shows up here after clicking the label and there are also a bunch of angular attributes on this div that are not relevant to my question</div>
</div>

【问题讨论】:

    标签: html angularjs label wai-aria wcag2.0


    【解决方案1】:

    我建议先学习基础知识,暂时忽略角度。

    查看&lt;label&gt; 元素的规范。它有一个for 属性,可以指向一个表单元素。 ID 必须指向“labelable element”(

    所以以下是有效的:

    <label for="myID">Element A is for Apple</label>
    <input id="myID" type="checkbox">
    

    但以下不是:

    <label for="myID">Element A is for Apple</label>
    <div id="myID"></div>
    

    事实上,如果你通过一个 html 验证器 https://validator.w3.org/nu 运行上面的例子,它会错误地标记它:

    错误:label元素的for属性的值必须是非隐藏表单控件的ID。

    关于label-id 属性,它不存在。它不是 html 语言的一部分。它似乎是一个自定义属性,但自定义属性应以“data-”开头。

    可以拥有没有for 属性的&lt;label&gt;,例如:

    <label id="newID">Element A is for Apple</label>
    <input type="checkbox" aria-labelledby="newID">
    

    在这种情况下, 指向

    【讨论】:

    • 感谢您的回复...我同意您的发现...我遇到的主要问题之一是,当我移除 angular 并按照您设置的方式进行设置时你回答的例子,功能坏了......现在我可以保留两个版本的html(正确的方式和自定义方式)我只是担心可能存在一定程度的冗余(因为每个元素都被标记和读了两遍)...再次,这种理解可能是缺乏经验...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多