簡體   English   中英

這是使用html角色的正確方法嗎?

[英]Is this the correct way to use html role?

如我所見,HTML5語義doctype中完全支持role屬性。 我在諸如以下的JQuery選擇器中使用了它:

<div role="inputForm">
  <div role="field">
    Name : <input type="text" role="name" />
  </div>
  <div role="field">
    Address : <textarea type="text" role="address"></textarea>
  </div>
  <div role="field">
    Country : <select role="country"></select>
  </div>
</div>

<script>
var inputForm = $("div[role='inputForm']");
var fields = $(inputForm.find("div[role='field']"));
var nameField = $(inputForm.find("input[role='name']"));
</script>

正如我所已知的,同樣的屬性正在使用中JqGrid ,網格插件JQuery

我認為這個選擇器比基於類/ id的選擇器更有效和模塊化。 但是,這是在HTML5中正確使用角色屬性嗎? 還是有進行這種設計的風險?

如果這種設計不支持/不建議作為HTML最佳實踐,是否有任何方法可以實現相同目的?

我找不到此類用法的任何文章或支持的文檔。

看來您應該使用id而不是角色(盡管不是您的role="field"屬性的屬性……這些應該是類)。

簡而言之,您的角色屬性值未按照WAI-ARIA規范的預期使用。

應該使用role屬性為文檔元素分配語義,並且Accessible Rich Internet Applications Suite(ARIA)定義了一組有限的有效值和適當值,以使Web內容和Web應用程序更易於訪問。

有關有效角色屬性值的詳細列表,請參見W3C規范文檔中的“角色模型”: http : //www.w3.org/TR/wai-aria/roles#abstract_roles

不它不是。 HTML5 定義

根據ARIA規范中所述的要求,作者可以在HTML元素上使用ARIA rolearia-*屬性,除非這些條件與下文所述的強本機語義沖突。

您的值inputFormfield 無效

如果正確使用了role屬性,那么當然也可以將其用作CSS和JS中的鈎子。


我認為這個選擇器比基於類/ id的選擇器更有效和模塊化。

您的實際意圖似乎是找到一個可以在多個(第三方)站點上使用的標識符,而不會造成名稱沖突

您可以使用classiddata-*屬性 為了避免發生沖突,您可以使用“稀有”前綴,例如您的域名( example.com ):

<div class="com-example-foo"></div> 
<div id="com-example-foo"></div> 
<div data-com-example="foo"></div> <!-- preferred, because the prefix is not part of the value -->

另一種可能性是將自定義詞匯表與Microdata或RDFa一起使用 因為您可以使用自己的URI作為值,所以其他任何人都不太可能使用它們(除非您發布詞匯表,並且對其他人有用;-)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM