[112] [[HTML]] の[[大域属性]] [DFN[[CODE(HTMLa)@en[[[role]]]]]] は、 [[ARIA]] における当該[[要素]]の[[役割]]を明示的に指定するものです。 * 仕様書 @@ XXX * 歴史 [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]] 版) [4] [CITE[Role Taxonomy for Accessible Adaptable Applications]] [5] [CITE[Re: note element in XHTML 2.0 from Steven Pemberton on 2006-03-21 (www-html@w3.org from March 2006)]] [CODE(XMLa)@en[[[role]]]]があるからもう[[意味]]のための[[要素型]]は要らないでしょう、と。 ([[名無しさん]] [WEAK[2006-03-28 03:09:01 +00:00]]) [6] [CITE[XHTML Role Attribute Module]] ([[名無しさん]] [WEAK[2006-06-17 09:51:23 +00:00]]) [7] [CITE[XHTML Role Attribute Module]] ([[名無しさん]] [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)]] Karl たん乙。でもどうせ他にも問題があるだろww ([[名無しさん]] [WEAK[2006-08-12 14:47:05 +00:00]]) [11] [CITE[アクセシビリティのある DHTML]] ([[名無しさん]]) [12] [CITE[[whatwg] Dynamic content accessibility in HTML today]] ([[名無しさん]]) [15] [CITE[XHTML Role Attribute Module]] ([[名無しさん]] [WEAK[2006-11-13 23:49:57 +00:00]]) [21] [CITE[Roles for Accessible Rich Internet Applications (WAI-ARIA Roles)]] ([[名無しさん]] [WEAK[2006-12-21 16:00:01 +00:00]]) [22] [CITE@ja[drry+@->]] ([CODE[2007-02-17 03:45:53 +09:00]] 版) 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]] 版) ([[名無しさん]] [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]] 版) ([[名無しさん]] [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]] 版) ([[名無しさん]] [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]] 版) ([[名無しさん]]) [36] [CITE@en[XHTML Role Attribute Module]] ([CODE[2007-06-06 22:42:49 +09:00]] 版) ([[名無しさん]] [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]] 版) ([[名無しさん]]) [38] [CITE@en[Built-in Accessibility Roles in HTML5]] ([[Henri Sivonen]] 著, [CODE[2007-07-19 16:17:28 +09:00]] 版) ([[名無しさん]] [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]] 版) ([[名無しさん]]) [40] >>39 必死だなという以外に適当な言葉が見つからない。 ([[名無しさん]]) [41] [CITE@en[XHTML Role Attribute Module]] ([CODE[2007-08-18 00:17:16 +09:00]] 版) [43] [CITE@en[XHTML Role Attribute Module]] ([CODE[2007-09-06 05:43:46 +09:00]] 版) ([[名無しさん]]) [44] [CITE[ARIA Proposal]] ([CODE[2007-09-27 01:58:08 +09:00]] 版) ([[名無しさん]]) [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]] 版) ([[名無しさん]]) [46] [CITE@en[XHTML Role Attribute Module]] ([CODE[2007-10-06 01:19:45 +09:00]] 版) ([[名無しさん]]) [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]] 版) ([[名無しさん]]) [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]] 版) ([[名無しさん]]) [49] [CITE[HTML5 IRC logs: freenode / #whatwg / 20071009]] ([CODE[2007-10-10 09:49:44 +09:00]] 版) > [04:31] (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] 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]] 版) ([[名無しさん]]) [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]] 版) ([[名無しさん]]) [56] [CITE@en[ARIA in HTML -- a new FAQ, and a proposal]] ([[Aaron M Leventhal]] 著, [CODE[2007-09-21 00:24:55 +09:00]] 版) ([[名無しさん]]) [57] [CITE@en[ARIA: Accessible Rich Internet Applications/Relationship to HTML FAQ - MDC]] ([CODE[2007-10-27 08:28:56 +09:00]] 版) ([[名無しさん]]) [58] [CITE@en-us[Illinois Center for Information Technology Accessibility: ARIA Examples]] ([CODE[2007-11-03 11:54:50 +09:00]] 版) ([[名無しさん]]) [59] [CITE@en[ARIA Proposal]] ([[Simon Pieters]] 著, [CODE[2007-09-27 01:56:15 +09:00]] 版) ([[名無しさん]]) [60] [CITE[ARIA, role, and W3C politics - Anne’s Weblog]] ([CODE[2007-10-06 09:32:53 +09:00]] 版) ** XHTML1 Role の最期 [61] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-01-29 03:05:16 +09:00]] 版) ([[名無しさん]]) [62] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-03-19 03:08:37 +09:00]] 版) ([[名無しさん]]) [63] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-04-10 03:36:01 +09:00]] 版) ([[名無しさん]]) [64] [CITE[2007-10-14 - vantguarde - web:g]] ([CODE[2008-05-11 14:42:11 +09:00]] 版) ([[名無しさん]]) [65] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-06-18 06:20:15 +09:00]] 版) ([[名無しさん]]) [66] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-06-25 23:25:21 +09:00]] 版) ([[名無しさん]]) [67] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-09-25 02:26:02 +09:00]] 版) ([[名無しさん]]) [68] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-10-19 05:57:36 +09:00]] 版) ([[名無しさん]]) [69] [CITE@en[XHTML Role Attribute Module]] ([CODE[2008-10-23 19:56:18 +09:00]] 版) [70] [CITE[Pronunciation Lexicon Specification (PLS) Version 1.0]] ([CODE[2008-10-13 23:03:02 +09:00]] 版) [71] [CITE@ja[XHTML Role属性 | | プログラマ2.0日報 | あすなろBLOG]] ([TIME[2008-11-02 01:43:50 +09:00]] 版) [72] [CITE[The SMIL 3.0 Linking Modules]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) >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]] 版) [74] [CITE[Document Structure – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) [76] [CITE@en[Duck-typing and XForms | webBackplane]] ([TIME[2009-02-11 18:55:58 +09:00]] 版) >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)[ Please enter your name ]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]] 版) [86] [CITE@en[XHTML Role Attribute Module]] ([TIME[2010-12-17 01:55:19 +09:00]] 版) [87] >>86 が [[XHTML2 WG]] の最期として出版された [[WG Note]] です。 [79] [CITE[Role Attribute 1.0]] ( ([TIME[2010-09-18 00:51:11 +09:00]] 版)) [80] [CITE[History of changes to WAI-ARIA Roles]] ( ([TIME[2010-09-15 05:52:15 +09:00]] 版)) [81] [CITE[Role Attribute 1.0]] ( ([TIME[2011-01-13 04:57:11 +09:00]] 版)) ** 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[
]] よりも [CODE(HTML)@en[

]] を使うように、 [CODE(HTMLa)@en[[[role]]]] を乱用せずに普通の[[要素]]を使う[['''べき''']]であるともされていました。 [SRC[>>86 3.]] ;; [92] ただこれは捉え方によっては [CODE(HTMLa)@en[[[role]]]] [[属性]]の存在意義が怪しくなってきますが・・・。 *** 例 [93] [SRC[>>86 3.]] [PRE(HTML example code)[

  • Downloads
  • Documentation
  • News
]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)[

Do you agree with the above license? Yes No

]PRE] ... は好ましくなく、既存の[[要素]]を使って、 [PRE(HTML example code)[

Do you agree with the above license? Yes No

]PRE] ... とするべきです。 ** HTML5 [82] [CITE[IRC logs: freenode / #whatwg / 20110118]] ( ([TIME[2011-02-12 21:17:44 +09:00]] 版)) [83] [CITE[IRC logs: freenode / #whatwg / 20110119]] ( ([TIME[2011-02-13 12:47:51 +09:00]] 版)) [84] [CITE@en[Web Applications 1.0 r5981 10066]] ( ([TIME[2011-04-09 08:24:00 +09:00]] 版)) [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]] 版)) [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]] 版)) [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]] 版)) [101] [CITE@en[Web Applications 1.0 r6634 revert r6610 per chair request]] ( ([TIME[2011-10-06 02:36:00 +09:00]] 版)) [102] [CITE@en[Web Applications 1.0 r6666 revert r6574 per chair request]] ( ([TIME[2011-10-12 08:35:00 +09:00]] 版)) [105] [CITE[''''''[''''''whatwg'''''']'''''' Validator.nu: "Attribute role not allowed on element h2 at this point."]] ( ([TIME[2012-08-28 22:40:22 +09:00]] 版)) ** 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]] 版)) -[104] [CITE[Role Attribute 1.0]] ( ([TIME[2012-07-12 04:44:07 +09:00]] 版)) -[106] [CITE[Role Attribute 1.0]] ( ([TIME[2012-12-13 22:25:06 +09:00]] 版)) -[107] [CITE[Role Attribute 1.0]] ( ([TIME[2013-03-29 00:13:26 +09:00]] 版)) ]REFS] [111] [[RDFa]] 同様、 [[CURIE]] を採用しています。語彙は仕様書内では規定しておらず、 [[XHTML2 WG]] の文書 ([[TR]] ではないただの文書) を参照しています。 ** 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]]]] [[属性]]がありましたが、 関係は特に明言されておらず、意味的に類似していると言えなくも無いものの、 まったく別の[[属性]]です。 [113] [CITE[Role Attribute 1.0]] ( ([TIME[2012-07-12 04:44:07 +09:00]] 版)) [114] [CITE@en[Role Attribute Processor and Browser Conformance]] ( ([TIME[2012-12-08 06:01:05 +09:00]] 版))