[112] [[HTML]] の[[大域属性]] [DFN[[CODE(HTMLa)@en[[[role]]]]]] は、 [[ARIA]] における当該[[要素]]の[[役割]]を明示的に指定するものです。

* 代替

[136] 基本的には [CODE[role]] [[属性]]は使うべきではなく、
一般的な[[HTML要素]]などを使うべきです。
[CODE[role]] [[属性]]は、他に有効な記述方法がない場合の代替としてのみ使うべきものです。

* 仕様書

[REFS[
- [30] [CITE@en-US[Accessible Rich Internet Applications (WAI-ARIA) 1.1]] ([TIME[2017-09-14 21:02:18 +09:00]]) <https://w3c.github.io/aria/aria/aria.html#roles>
- [75] [CITE@en-US[Accessible Rich Internet Applications (WAI-ARIA) 1.1]] ([TIME[2017-09-14 21:02:18 +09:00]]) <https://w3c.github.io/aria/aria/aria.html#abstract_roles>
]REFS]

* 属性値

[32] [[著者]]は、[[役割]]を時を経て変更したり、[[利用者]]の行動に応じて変更したりしては[MUST[なりません]]。
[[役割]]を変更したい場合は、当該[[要素]]とその[[子供]]を一旦削除して、
改めて新しい[[要素]]を挿入しなければ[MUST[なりません]]。
[SRC[>>30]]

;; [34] これは通常の [[HTML]] や [[SVG]] の[[要素]]や[[属性]]には存在しない異様な規定です。
[[ARIA]] [[仕様書]]は、 [[AT]] が古い[[役割]]の値を[[キャッシュ]]したまま更新しないかもしれないため[SRC[>>30]] と説明しています。
一方で[[利用者エージェント]]に対しては適切に更新することを[SHOULD[推奨]]しています (>>33)。
[[利用者エージェント]]の都合を[[著者]]の便宜より優先することは [[design principle]]
違反で、 ([[著者]]が特定の実装との互換性のために配慮するべき指針としてならともかく、[[仕様書]]の規定としては)
不適切でしょう。 [[AT]] がキャッシュするか否かは [[AT]] の[[実装上の詳細]]であり、
[[著者]]には感知し得ないことです。そのような可能性があるなら、
更新時に[[利用者エージェント]]が内部的に削除と挿入を行えば済むことで、
[[著者]]にその手間を押し付けるのは不可解です。

[113] いくつかの[[役割]]は、[DFN[[RUBYB[[[抽象役割]]]@en[abstract role]]]]とされています。
[[抽象役割]]は、[[仕様書]]の定義のためのもので、実用目的ではありません。
[[著者]]は[[抽象役割]]を使っては[MUST[なりません]] [SRC[>>75]]。

* 文脈

[31] [[HTML要素]]に指定できます。

* 内容モデルの制約

[42] [[役割]]ごとに[[内容モデル]]の制約が定義されています。
次の項目も参照。

- [[required owned elements]]
- [[required context role]]

* 処理

[33] [[利用者エージェント]]は、 [CODE[role]] [[属性]]が変化したときは、
[[アクセス可能性API]]への[[写像]]を適切に変更する[SHOULD[べき]]です。 [SRC[>>30]]

* 歴史

[9] [DFN[[CODE(HTMLa)@en[[[role]]]] [[属性]]]]は、
値が[[名前空間]]に属するようになった [CODE(HTMLa)@en[[[class]]]]
[[属性]]です。色々な思惑が交錯しているので、
どうなるかはまだよくわかりません。。。

[13]
:[[名前空間URI]]:
[CODE(URI)@en[[[http://www.w3.org/2002/06/xhtml2/]]]]、
[CODE(URI)@en[[[http://www.w3.org/2002/06/xhtml2]]]]、
[CODE(URI)@en[[[http://www.w3.org/TR/xhtml2]]]]、
[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]、
[[null名前空間]]
:[[局所名]]:[CODE(HTMLa)@en[[[role]]]]
([Q[[[役割]]]] ([Q@en[[[role]]]]) より)
:[[属性値]]:[[QNames]]
:[[既定値]]:(指定なし)
:状態:[[W3C]] [[WD]]

[14]
[[属性名]]の[[名前空間URI]]について。
- [CODE(URI)@en[[[http://www.w3.org/2002/06/xhtml2/]]]]
-- [[XHTML 2.0]] の[[名前空間URI]] です。
-- [[XHTML 2.0]] の[[名前空間]]に属する[[要素]]で使った場合の動作は[[未規定]]です。
- [CODE(URI)@en[[[http://www.w3.org/2002/06/xhtml2]]]]
-- [[XHTML 2.0]] の古い[[名前空間URI]] です。
-- ただし、この [[URI]] を使っていて公開された [[WD]]
のうちで [CODE(HTMLa)@en[[[role]]]] を定義していたものはありません。
-- 巷の使用例でこの [[URI]] を使っているものがありました。
- [CODE(URI)@en[[[http://www.w3.org/TR/xhtml2]]]]
-- 巷の使用例でこの [[URI]] を使っているものがありました。
- [CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]
-- [CODE(HTMLa)@en[[[role]]]] の [[WD]]
の本文には明記されていませんが、 
[[DTDモジュール]]には[[大域属性]]として使えるような記述があります。
- [[null名前空間]]
-- [CODE(URI)@en[[[http://www.w3.org/2002/06/xhtml2/]]]] や
[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]
の[[名前空間]]に属する[[要素]]では、
[[局所属性]]として使います。

** XHTML2

[77] [[XHTML2]] 第7次案で追加されました。

;; [CITE@en[XHTML 2.0 - XHTML Role Access Module]] ([TIME[2005-05-28 06:57:41 +09:00]] 版) <http://www.w3.org/TR/2005/WD-xhtml2-20050527/mod-role.html#adef_role_role>

[4]
[CITE[Role Taxonomy for Accessible Adaptable Applications]] <http://www.w3.org/WAI/PF/GUI/>

[5]
[CITE[Re: note element in XHTML 2.0 from Steven Pemberton on 2006-03-21 (www-html@w3.org from March 2006)]] <http://lists.w3.org/Archives/Public/www-html/2006Mar/0023>

[CODE(XMLa)@en[[[role]]]]があるからもう[[意味]]のための[[要素型]]は要らないでしょう、と。

([[名無しさん]] [WEAK[2006-03-28 03:09:01 +00:00]])

[6]
[CITE[XHTML Role Attribute Module]] <http://htmlwg.mn.aptest.com/htmlwg/xhtml-role/>
([[名無しさん]] [WEAK[2006-06-17 09:51:23 +00:00]])

[7]
[CITE[XHTML Role Attribute Module]] <http://www.w3.org/TR/2006/WD-xhtml-role-20060725/>
([[名無しさん]] [WEAK[2006-07-26 00:40:20 +00:00]])

[8]
>>7 つっこみどころがたくさんありすぎる件。
([[名無しさん]] [WEAK[2006-07-26 00:50:12 +00:00]])

[10]
[CITE[List of comments for XHTML role attribute module (2006-07-25) from Karl Dubost on 2006-08-10 (www-html@w3.org from August 2006)]] <http://lists.w3.org/Archives/Public/www-html/2006Aug/0087.html>

Karl たん乙。でもどうせ他にも問題があるだろww
([[名無しさん]] [WEAK[2006-08-12 14:47:05 +00:00]])

[11]
[CITE[アクセシビリティのある DHTML]] <http://www.mozilla-japan.org/access/dhtml/>
([[名無しさん]])

[12]
[CITE[[whatwg] Dynamic content accessibility in HTML today]] <http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-August/thread.html#6995>
([[名無しさん]])

[15]
[CITE[XHTML Role Attribute Module]] <http://www.w3.org/TR/2006/WD-xhtml-role-20061113/>
([[名無しさん]] [WEAK[2006-11-13 23:49:57 +00:00]])

[21]
[CITE[Roles for Accessible Rich Internet Applications (WAI-ARIA Roles)]] <http://www.w3.org/TR/2006/WD-aria-role-20061220/>
([[名無しさん]] [WEAK[2006-12-21 16:00:01 +00:00]])

[22]
[CITE@ja[drry+@->]] ([CODE[2007-02-17 03:45:53 +09:00]] 版) <http://blog.drry.jp/>

Real world example。 [CODE(MIME)@en[[[application/xhtml+xml]]]]
で [CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]]
に属する[[要素]]の [[null名前空間]]の[[属性]]として。
Role module で定義されている役割を使用しています。
([[名無しさん]] [WEAK[2007-02-25 11:14:06 +00:00]])

[23]
[CITE@en[Re: Use the role-attribute instead of predefined class names]] ([[Matthew Raymond]] 著, [CODE[2007-04-06 20:31:09 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2007Apr/0295.html>
([[名無しさん]] [WEAK[2007-04-07 04:07:29 +00:00]])

[24]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2007-04-03 10:17:35 +09:00]] 版) <http://www.w3.org/MarkUp/2007/ED-xhtml-role-20070402/>
([[名無しさん]] [WEAK[2007-04-07 14:22:31 +00:00]])

[25]
[CITE@en[XHTML Document Development Area]] ([CODE[2007-04-07 01:58:13 +09:00]] 版) <http://www.w3.org/MarkUp/Drafts/#xhtml-role>
([[名無しさん]] [WEAK[2007-04-07 14:23:22 +00:00]])

[35]
[CITE@en[Creating Accessible Widgets | The Dojo Toolkit]] ([CODE[2007-06-08 23:49:26 +09:00]] 版) <http://www.dojotoolkit.org/book/dojo-book-0-4/part-8-internationalization-and-accessiblity/accessibility/creating-accessible-wi>
([[名無しさん]])

[36]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2007-06-06 22:42:49 +09:00]] 版) <http://www.w3.org/MarkUp/2007/ED-xhtml-role-20070606/>
([[名無しさん]] [WEAK[2007-06-09 08:10:48 +00:00]])

[37]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2007-07-03 22:37:19 +09:00]] 版) <http://www.w3.org/MarkUp/2007/ED-xhtml-role-20070703/>
([[名無しさん]])

[38]
[CITE@en[Built-in Accessibility Roles in HTML5]] ([[Henri Sivonen]] 著, [CODE[2007-07-19 16:17:28 +09:00]] 版) <http://hsivonen.iki.fi/html5-roles/>
([[名無しさん]] [WEAK[2007-07-28 02:57:21 +00:00]])

[39]
[CITE@en-US[Embedding Accessibility Role and State Metadata in HTML Documents]] ([CODE[2007-02-05 23:18:51 +09:00]] 版) <http://www.w3.org/WAI/PF/adaptable/HTML4/embedding-20061212.html>
([[名無しさん]])

[40]
>>39 必死だなという以外に適当な言葉が見つからない。
([[名無しさん]])

[41]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2007-08-18 00:17:16 +09:00]] 版) <http://www.w3.org/MarkUp/2007/ED-xhtml-role-20070817/>

[43]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2007-09-06 05:43:46 +09:00]] 版) <http://www.w3.org/MarkUp/2007/ED-xhtml-role-20070905/>
([[名無しさん]])

[44]
[CITE[ARIA Proposal]] ([CODE[2007-09-27 01:58:08 +09:00]] 版) <http://simon.html5.org/specs/aria-proposal>
([[名無しさん]])

[45]
[CITE@en[Re: direct link to latest version of S. Pieters' ARIA Proposal]] ([[Doug Schepers]] 著, [CODE[2007-10-05 05:13:06 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-xhtml2/2007Oct/0020.html>
([[名無しさん]])

[46]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2007-10-06 01:19:45 +09:00]] 版) <http://www.w3.org/TR/2007/WD-xhtml-role-20071004/>
([[名無しさん]])

[47]
[CITE@en['''['''XHTML-Role''']''' Remove role attribute in http://www.w3.org/1999/xhtml namespace]] ([[Simon Pieters]] 著, [CODE[2007-09-26 02:35:10 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-html-editor/2007JulSep/0032.html>
([[名無しさん]])

[48]
[CITE@en[Re: '''['''XHTML-Role''']''' Remove role attribute in http://www.w3.org/1999/xhtml namespace]] ([[Simon Pieters]] 著, [CODE[2007-09-26 03:45:19 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-html-editor/2007JulSep/0033.html>
([[名無しさん]])

[49]
[CITE[HTML5 IRC logs: freenode / #whatwg / 20071009]] ([CODE[2007-10-10 09:49:44 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20071009#l-24>

> [04:31] <Hixie> (i mean, netscape 2.0 is a compliant role module implementation as far as i can tell)  

([[名無しさん]])

[50]
>>46 よく見ると [CODE(HTMLa)@en[[[role]]]] [[属性]]がどこで使えるのかの定義が全然ない。 ([[属性]]を定義する[[モジュール]]だから意図的にそうした? でも他の[[モジュール]]の例に倣うなら[Q[[[共通]][[属性集合]]に[[属性]] [CODE(HTMLa)@en[[[role]]]] を追加する。]]のような定義があるべきだと思うが。)
[[大域属性]]として使えるということも、[[DTD実装]]で暗示されているだけ。
([[名無しさん]])

[51]
>>50 [[大域属性]]の件は[[適合性]]の章に言及があった。

でもこの[[適合性]]の章は[[エスパー]]でないと理解できないだろう。。。
([[名無しさん]])

[52]
>>49

> [04:51] <Hixie> it is literally true that my desk is a compliant XHTML Role Attribute Module implementation  

([[名無しさん]])

[53]
[CITE@ja[Taken SPC : role 属性値を基にノードを選択する]] ([CODE[2007-10-19 23:05:58 +09:00]] 版) <http://taken.s101.xrea.com/blog/article.php?id=812>
([[名無しさん]])

[54]
>>53 そこまで苦労するだけの価値が [CODE(HTMLa)@en[[[role]]]] [[属性]]にあるのだろうか・・・
([[名無しさん]])

[55]
[CITE@en-US[Roles for Accessible Rich Internet Applications (WAI-ARIA Roles) Version 1.0]] ([CODE[2007-10-20 00:25:56 +09:00]] 版) <http://www.w3.org/TR/2007/WD-aria-role-20071019/>
([[名無しさん]])

[56]
[CITE@en[ARIA in HTML -- a new FAQ, and a proposal]] ([[Aaron M Leventhal]] 著, [CODE[2007-09-21 00:24:55 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2007Sep/0436.html>
([[名無しさん]])

[57]
[CITE@en[ARIA: Accessible Rich Internet Applications/Relationship to HTML FAQ - MDC]] ([CODE[2007-10-27 08:28:56 +09:00]] 版) <http://developer.mozilla.org/en/docs/ARIA:_Accessible_Rich_Internet_Applications/Relationship_to_HTML_FAQ>
([[名無しさん]])

[58]
[CITE@en-us[Illinois Center for Information Technology Accessibility: ARIA Examples]] ([CODE[2007-11-03 11:54:50 +09:00]] 版) <http://test.cita.uiuc.edu/aria/>
([[名無しさん]])

[59]
[CITE@en[ARIA Proposal]] ([[Simon Pieters]] 著, [CODE[2007-09-27 01:56:15 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-xhtml2/2007Sep/0016.html>
([[名無しさん]])

[60]
[CITE[ARIA, role, and W3C politics - Anne’s Weblog]] ([CODE[2007-10-06 09:32:53 +09:00]] 版) <http://annevankesteren.nl/2007/10/w3c-politics>

** XHTML1 Role の最期

[61]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-01-29 03:05:16 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20080128/>
([[名無しさん]])

[62]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-03-19 03:08:37 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20080318/>
([[名無しさん]])

[63]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-04-10 03:36:01 +09:00]] 版) <http://www.w3.org/TR/2008/WD-xhtml-role-20080407/>
([[名無しさん]])

[64]
[CITE[2007-10-14 - vantguarde - web:g]] ([CODE[2008-05-11 14:42:11 +09:00]] 版) <http://web.g.hatena.ne.jp/vantguarde/20071014#1192352580>
([[名無しさん]])

[65]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-06-18 06:20:15 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20080617/>
([[名無しさん]])

[66]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-06-25 23:25:21 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20080625/>
([[名無しさん]])

[67]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-09-25 02:26:02 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20080924/>
([[名無しさん]])

[68]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-10-19 05:57:36 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20081018/>
([[名無しさん]])

[69]
[CITE@en[XHTML Role Attribute Module]] ([CODE[2008-10-23 19:56:18 +09:00]] 版) <http://www.w3.org/MarkUp/2008/ED-xhtml-role-20081023/>

[70]
[CITE[Pronunciation Lexicon Specification (PLS) Version 1.0]] ([CODE[2008-10-13 23:03:02 +09:00]] 版) <http://www.w3.org/TR/2008/REC-pronunciation-lexicon-20081014/#S4.4>

[71]
[CITE@ja[XHTML Role属性 | | プログラマ2.0日報 | あすなろBLOG]] ([TIME[2008-11-02 01:43:50 +09:00]] 版) <http://blog.pasonatech.co.jp/sugiura/7657.html>

[72] [CITE[The SMIL 3.0 Linking Modules]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-extended-linking.html#Linking-SummaryOfChanges>

>The SMIL 3.0 specification had expected to integrate the general features of the HTML-5/XHTML-2 access and role attributes as an extension and replacement for the accessKey attribute, but a lack of consensus among the proposals from XHTML-2 and HTML-5 has caused us to postpone this integration to a future version of SMIL.

[73] [CITE[SMIL 3.0 DAISY Profile]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-daisy-profile.html#DaisyProfileNS-XhtmlRole>

[74] [CITE[Document Structure – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/struct.html#RoleAttribute>

[76] [CITE@en[Duck-typing and XForms | webBackplane]] ([TIME[2009-02-11 18:55:58 +09:00]] 版) <http://webbackplane.com/mark-birbeck/blog/2009/01/duck-typing-and-xforms>

>The second aspect -- the 'what to display part' -- is actually common to a number of elements in XForms, such as xf:output, xf:help, xf:alert, and so on; they can all either display inline text, or text that is obtained from the instance data.

>
But the role attribute opens up the possibility of assigning functionality to non-XForms elements, for example:
[PRE(XML example code)[
<span role="xf:hint">Please enter your name</span>
]PRE]
Now we get our duck-typing in reverse; 'if an element says that it wants to be a duck, give it the waddle and quack methods'.

[78] [CITE@en[Status & Future of Role Module update (was Re: Agenda 2010-01-06)]]
([[Gregory J. Rosmaita]] 著, [TIME[2010-01-06 08:54:36 +09:00]] 版)
<http://lists.w3.org/Archives/Public/public-xhtml2/2010Jan/0001.html>

[86] [CITE@en[XHTML Role Attribute Module]] ([TIME[2010-12-17 01:55:19 +09:00]] 版) <http://www.w3.org/TR/2010/NOTE-xhtml-role-20101216/>

[87] >>86 が [[XHTML2 WG]] の最期として出版された [[WG Note]] です。

[79] [CITE[Role Attribute 1.0]]
( ([TIME[2010-09-18 00:51:11 +09:00]] 版))
<http://www.w3.org/TR/2010/WD-role-attribute-20100916/>

[80] [CITE[History of changes to WAI-ARIA Roles]]
( ([TIME[2010-09-15 05:52:15 +09:00]] 版))
<http://www.w3.org/WAI/PF/role-attribute/change-history>

[81] [CITE[Role Attribute 1.0]]
( ([TIME[2011-01-13 04:57:11 +09:00]] 版))
<http://www.w3.org/TR/2011/WD-role-attribute-20110113/>

** XHTML1 Role における定義

[88] [[XHTML2 WG]] による [[XHTML Role Attribute Module]] 仕様書は、 
[DFN[[[Role Attribute Module]]]] として、 [CODE(HTMLa)@en[[[role]]]] [[属性]]だけが含まれる
[[XHTMLモジュール]]を規定していました [SRC[>>86 3.]]。

[96] どこにも明記されていませんが、適合性 [SRC[>>86 2.1.]] と [[DTD実装]] [SRC[>>86 A.]]
から推測するに、[[null名前空間]]の[[属性]]として、または
[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]] [[名前空間]]の[[大域属性]]として使えるようです。
「[[ホスト言語]]がこの[[XHTMLモジュール]]を自[[名前空間]]に取り込まない時」
には、[[名前空間宣言]]が[[文書]]に含まれなければ[['''ならない''']]とされており [SRC[>>86 2.1.]]、
行間を読むと [[XHTML1]] の[[要素]]や[[ホスト言語]]で認められた[[要素]]では [[null名前空間]]で使えますが、
それ以外では[[大域属性]]とする必要があります。しかし [[XHTML1]]
の[[要素]]で[[大域属性]]として使うことは禁止されていません。

;; [97] [[XHTML2 WG]] の仕様書では標準的な品質です。

[89] [[属性値]]は [[CURIE]] を[[空白]]区切りで1つ[[以上]]含めたものとされていました。
その [[CURIE]] は、 [[RDF]] で定義された[[語彙]]中の[RUBYB[[[語]]]@en[term]]である[['''べき''']]とされていました。
[SRC[>>86 3.]]

[90] [[CURIE]] の[[接頭辞]]が[[空文字列]]である時は [CODE(URI)[[[http://www.w3.org/1999/xhtml/vocab#]]]]
に[[写像]]されるとされていました。ただし[[ホスト言語]]が違う[[写像]]を定義しても良いとされていました。
[[接頭辞]]が無い時は [COIDE(URI)[[[http://www.w3.org/1999/xhtml/vocab#]]]]
に[[写像]]しなければ[['''ならない''']]とされていました。 [SRC[>>86 3.]]

[91] また、 [CODE(HTML)@en[<div role="paragraph">]] よりも [CODE(HTML)@en[<p>]]
を使うように、 [CODE(HTMLa)@en[[[role]]]] 
を乱用せずに普通の[[要素]]を使う[['''べき''']]であるともされていました。 [SRC[>>86 3.]]

;; [92] ただこれは捉え方によっては [CODE(HTMLa)@en[[[role]]]] [[属性]]の存在意義が怪しくなってきますが・・・。

*** 例

[93] [SRC[>>86 3.]]
[PRE(HTML example code)[
<ul role="navigation">
    <li href="downloads">Downloads</li>
    <li href="docs">Documentation</li>
    <li href="news">News</li>
</ul>
]PRE]

;; [95] [[XHTML1]] には [CODE(HTMLe)@en[[[nav]]]] [[要素]]や 
[CODE(HTMLe)@en[[[menu]]]] [[要素]]がありませんでした。ただこれは [[XHTML2 WG]]
的には [CODE(HTMLe)@en[[[nl]]]] [[要素]]を使うのが筋だと思うのですが・・・。

[94] [SRC[>>86 3.]]
[PRE(HTML bad example code)[
<p>Do you agree with the above license?
    <span role="checkbox">Yes</span>
    <span role="checkbox">No</span>
</p>
]PRE]
... は好ましくなく、既存の[[要素]]を使って、
[PRE(HTML example code)[
<p>Do you agree with the above license?
    <input type="checkbox" name="agree" value="y" />Yes
    <input type="checkbox" name="agree" value="n" />No
</p>
]PRE]
... とするべきです。

** HTML5

[82] [CITE[IRC logs: freenode / #whatwg / 20110118]]
( ([TIME[2011-02-12 21:17:44 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20110118#l-918>

[83] [CITE[IRC logs: freenode / #whatwg / 20110119]]
( ([TIME[2011-02-13 12:47:51 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20110119>

[84] [CITE@en[Web Applications 1.0 r5981 10066]]
( ([TIME[2011-04-09 08:24:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5980&to=5981>

[98] [CITE@en[Web Applications 1.0 r6476  allow conformance checkers to catch some more nonsensical combinations]]
( ([TIME[2011-08-16 14:03:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6475&to=6476>

[99] [CITE@en[Web Applications 1.0 r6574   tweak authoring conformance requirements to prevent some meaningless combinations]]
( ([TIME[2011-09-24 04:44:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6573&to=6574>

[100] [CITE@en[Web Applications 1.0 r6610     Disallow some combinations that would indicate element misuse.]]
( ([TIME[2011-10-02 14:09:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6609&to=6610>

[101] [CITE@en[Web Applications 1.0 r6634 revert r6610 per chair request]]
( ([TIME[2011-10-06 02:36:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6633&to=6634>

[102] [CITE@en[Web Applications 1.0 r6666 revert r6574 per chair request]]
( ([TIME[2011-10-12 08:35:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6665&to=6666>

[105] [CITE[''''''[''''''whatwg'''''']'''''' Validator.nu: "Attribute role not allowed on element h2 at this point."]]
( ([TIME[2012-08-28 22:40:22 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-August/037024.html>

** PFWG

[108] [[XHTML2 WG]] 解散後 [[Role Attribute]] は [[PFWG]] に持ち込まれ、最終的に2013年3月に [[W3C]]
[[勧告]]となりました。

;; [109] 既に [[WHATWG HTML]] と [[WAI-ARIA]] によって [CODE(HTMLa)@en[[[role]]]] [[属性]]が定義されており、
[[W3C]] [[HTML WG]] においても [[HTML5]] が [[CR]] となって久しいこの時点で時代錯誤も甚だしい
[[XHTML m12n]] ベースの仕様を[[勧告]]とすることに一体なんの意味があるのでしょう・・・。

[REFS[
-[103] [CITE[Role Attribute 1.0]]
( ([TIME[2012-07-04 04:41:05 +09:00]] 版))
<http://www.w3.org/WAI/PF/role-attribute/>
-[104] [CITE[Role Attribute 1.0]]
( ([TIME[2012-07-12 04:44:07 +09:00]] 版))
<http://www.w3.org/TR/2012/CR-role-attribute-20120712/>
-[114] [CITE@en[Role Attribute Processor and Browser Conformance]]
( ([TIME[2012-12-08 06:01:05 +09:00]] 版))
<http://www.w3.org/WAI/PF/role-attribute/implementation-report>
-[115] [CITE[History of changes to WAI-ARIA Roles]]
( ([TIME[2011-01-20 03:25:28 +09:00]] 版))
<http://www.w3.org/WAI/PF/role-attribute/change-history>
-[106] [CITE[Role Attribute 1.0]]
( ([TIME[2012-12-13 22:25:06 +09:00]] 版))
<http://www.w3.org/TR/2012/PR-role-attribute-20121213/>
-[107] [CITE[Role Attribute 1.0]]
( ([TIME[2013-03-29 00:13:26 +09:00]] 版))
<http://www.w3.org/TR/2013/REC-role-attribute-20130328/>
]REFS]

[111] [[RDFa]] 同様、 [[CURIE]] を採用しています。語彙は仕様書内では規定しておらず、
[[XHTML2 WG]] の文書 ([[TR]] ではないただの文書) を参照しています。

[116] >>114 によると [CODE(HTMLa)@en[[[role]]]] [[属性]]が (他の任意の名前の属性と同じように)
[[DOM]] に現れることが複数の [[Webブラウザー]]に実装されていることの根拠とされています。
笑うしかないですね・・・。

;; [117] [[XHTML2 WG]] は既存のブラウザーでも [[CSS]] や [[JavaScript]]
でがんばれば [[XHTML2]] は既に実装済みとも言える(キリッ)などと主張していましたが、
それよりも更にひどいwwww

*** 用法

[125] [CODE(HTMLa)@en[[[role]]]] [[属性]]は[[文書]]の[[文脈]]における当該[[要素]]の[[役割]] (role)
を表すもの [SRC[>>107]] とされています。具体的には [[AT]] で[[要素]]の目的を判断したり、
[[利用者]]が[[要素]]に対して行える行動についての情報を提供したり、
特定分野向け (例えば法令用語) の注釈付けに用いたりすることができるとされています。

[126] しかし実際にどのように[[語彙]]を定義してどのように用いるのが適切なのか、
[[利用者エージェント]]がどう解釈してどう処理に用いるべきなのか、
複数の[[語彙]]の[[役割]]が衝突するときどう解決するべきなのか、
といったような利用や実装に必要な情報がまったく提供されていませんでした。

[127] [[著者]]は [CODE(HTMLe)@en[[[div]]]] のような意味的に中立な[[要素]]に意味を付加するために
[CODE(HTMLa)@en[[[role]]]] を使うよりも、専用の [CODE(HTMLe)@en[[[p]]]]
のような[[要素]]があればそちらを優先する[['''べきです''']] [SRC[>>107]]。

[128] [[語彙]]の [[URL]] で示される場所には機械と人間が理解できる定義を用意する[['''べきです''']] [SRC[>>107]]。

;; [129] しかし具体的にそれがどのような形式であるかは定義されていません。機械可読であることを要求しても、
それがどのような書式であるか、いつどのように取得され、どう解釈されて処理に反映されるのかが規定されないことには、
意味を成さないと思うのですが・・・。

*** 属性値

[119] [[属性値]]は [[RDFa Core 1.1]] の [CODE[[[TERMorCURIEorAbsIRIs]]]] とされていました [SRC[>>107]]。

;; [120] [[RDFa]] も [[Role]] も同時期に [[XHTML2]] の一部として作られたものでしたが、
前述のような経緯で時間が経過するうちに [[RDFa]] は2つ目の版になっていましたw

[121] [[CURIE]] や [[IRI]] の他に [[TERM]]、すなわち[[名前空間接頭辞]]のない値が使えることになっています。
その [[TERM]] の場合の利用可能な値は [[XHTML-VOCAB]] で定義されることになっています。ただしその部分はなぜか
「NOTE」とされていて、仕様書の[[規定]]の部分では何も記述がありません。

;; [122] [[XHTML2 WG]] では標準的な品質です。

[123] 属性値に含まれる各部分は [[RDF]] で定義された語彙に含まれる語の [[IRI]] である[['''べきです''']]
[SRC[>>107]]。

;; [124] ということで [[Role]] は [[RDF]] でも [[RDFa]] でもありませんが、 [[RDF]]
と深く関係しているものなのです。

*** RDFa

[130] [[RDFa]] における処理については、[[RDFa処理器]]の項を参照してください。

** WAI-ARIA

[110] [[WAI-ARIA]] 仕様書は当初はただ単に [[Role Attribute]] 仕様を参照していただけだったはずですが、
後に [CODE(HTMLa)@en[[[role]]]] [[属性]]の定義をも直接含むようになっています。 [[HTML Living Standard]]
は [CODE(HTMLa)@en[[[role]]]] [[属性]]の定義について全面的にこちらの仕様を参照しています。

@@ XXX

* 関連

[85] [[XLink]] には [CODE(XMLa)@en[[[xlink:role]]]] [[属性]]がありましたが、
関係は特に明言されておらず、意味的に類似していると言えなくも無いものの、
まったく別の[[属性]]です。

* メモ

[118] [CITE@en[Using WAI-ARIA in HTML]]
( ([TIME[2013-10-04 02:44:22 +09:00]] 版))
<http://www.w3.org/TR/2013/WD-aria-in-html-20131003/>

[131] [CITE@en-US[Accessible Rich Internet Applications (WAI-ARIA) 1.0]]
( ([TIME[2014-01-14 16:21:51 +09:00]] 版))
<http://www.w3.org/WAI/PF/aria/complete#host_general_role>

[132] [CITE@en-US-x-hixie[HTML Standard]]
( ([TIME[2014-01-18 00:46:11 +09:00]] 版))
<http://www.whatwg.org/specs/web-apps/current-work/#wai-aria>

[133] [CITE@en-US-x-hixie[HTML Standard]]
( ([TIME[2014-01-18 01:13:00 +09:00]] 版))
<http://www.whatwg.org/specs/web-apps/current-work/#hit-region's-aria-role>

[1] [CITE@EN[Extensible Stylesheet Language (XSL) Version 1.1]]
([TIME[2006-12-05 23:25:06 +09:00]] 版)
<http://www.w3.org/TR/xsl/#role>

[2] [CITE@en[add "dpub-" prefix to roles and remove warnings related to naming and… · w3c/aria@43814f4]]
([TIME[2015-05-30 23:28:54 +09:00]] 版)
<https://github.com/w3c/aria/commit/43814f4144b7c956506edef8e54ce8becda59bc0>

[3] [CITE[IRC logs: freenode / #whatwg / 20150612]]
([TIME[2015-06-13 12:13:34 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20150612>

[16] [CITE@en-US[Accessible Rich Internet Applications (WAI-ARIA) 1.0]]
( ([TIME[2014-01-14 16:21:51 +09:00]] 版))
<http://www.w3.org/WAI/PF/aria/complete#def_role>

[FIG(quote)[
[FIGCAPTION[
[17] ([TIME[2016-03-31 01:20:03 +09:00]] 版)
<https://www.zotero.org/>
]FIGCAPTION]

>    <body >
>         <!-- Header -->
>         <header role="banner" class="container">
>             <div class="center container">
>                                                 

]FIG]


[FIG(quote)[
[FIGCAPTION[
[18] [CITE@ja[東京のリノベーション・デザイナーズ賃貸ならグッドルーム[goodroom]]]
( ([TIME[2016-05-31 15:23:58 +09:00]]))
<https://www.goodrooms.jp/>
]FIGCAPTION]

> 
> <header id="site-header" role="banner">
> <nav role="navigation">
> <nav id="global-navi" role="navigation">
> <main id="main-estate-list" role="main">
> <nav id="estate-type-navi" role="navigation">
> <nav role="navigation" class="main-estate-list-paging">
> <aside id="recommend-estate" role="complementary">
> <aside id="column-left" role="complementary">
> <nav role="navigation">
> <footer role="contentinfo">

]FIG]


[FIG(quote)[
[FIGCAPTION[
[19] [CITE@ja[omusubi不動産]]
( ([TIME[2016-05-31 15:29:08 +09:00]]))
<http://www.omusubi-estate.com/>
]FIGCAPTION]

> 
> <form role="search" method="get" class="search-form" action="http://www.omusubi-estate.com/">

]FIG]


[FIG(quote)[
[FIGCAPTION[
[20] [CITE@ja[ブリブザー、恋愛育成ゲーム『すくみず!』をリリース…野水伊織さん、新田恵海さん、福原香織さん、沢城みゆきさん、中島愛さんが出演 │ ハッカドール]]
( ([TIME[2016-06-03 00:37:29 +09:00]]))
<https://web.hackadoll.com/n/7Eov>
]FIGCAPTION]

> 
>                     <form role="search" name="newsSearch" autocomplete="off" class="cle"
>                                 hk-action-log="search"
>                                 hk-log-label="header_input"
>                                 hk-log-keyword="{{model.keyword}}"
>                         >

]FIG]


[FIG(quote)[
[FIGCAPTION[
[26] [CITE@ja[XRAIN 全国概況画面]]
( ([TIME[2016-07-29 12:36:57 +09:00]]))
<http://www.river.go.jp/x/xmn0107010.php>
]FIGCAPTION]

> 
> 			<a class="menu" id="menu_notice" href="javascript:void(0);" role="button">
> 				<img id="menu_notice_icon" src="./img/sub_menu_notice.png" alt="お知らせアイコン"><br>
> 				お知らせ
> 			</a>

]FIG]


[FIG(quote)[
[FIGCAPTION[
[27] [CITE@ja[XRAIN 全国概況画面]]
( ([TIME[2016-07-29 12:37:22 +09:00]]))
<http://www.river.go.jp/x/xmn0107010.php>
]FIGCAPTION]

> 
> 	<section id="contents" role="main">
> 		<section id="map-contents">
> 			<div class="guide">地図を拡大するには、XRAIN表示範囲の見たい箇所をクリックするか、右側の地方名をクリックしてください。</div>
> 			<div class="data-header" role="heading">
> 				全国概況
> 			</div>

]FIG]


[28] [CITE@en[Remove canvas element's hit region feature (for now)]]
([[annevk]]著, [TIME[2016-10-21 18:01:07 +09:00]])
<https://github.com/whatwg/html/commit/9d493a37ed7e49c58522a3fed05d14bde1a8913c>

[29] [CITE@en[27297 – DOM needs a way to get element's computed ARIA role and computed label string]]
([TIME[2017-07-23 14:18:00 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=27297>

[134] [CITE@en[define token value case requirements for authors]]
([[stevefaulkner]]著, [TIME[2017-10-13 15:40:28 +09:00]])
<https://github.com/w3c/html-aria/commit/9e9d6a917e64dc61a5d5da4c71921e7f93bb021e>

[135] [CITE@en[define role values as case sensitive for author conformance purposes · Issue #84 · w3c/html-aria]]
([TIME[2017-10-14 12:43:16 +09:00]])
<https://github.com/w3c/html-aria/issues/84>