]] よりも [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]] 版))
-[114] [CITE@en[Role Attribute Processor and Browser Conformance]]
( ([TIME[2012-12-08 06:01:05 +09:00]] 版))
-[115] [CITE[History of changes to WAI-ARIA Roles]]
( ([TIME[2011-01-20 03:25:28 +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]] ではないただの文書) を参照しています。
[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]] 版))
[131] [CITE@en-US[Accessible Rich Internet Applications (WAI-ARIA) 1.0]]
( ([TIME[2014-01-14 16:21:51 +09:00]] 版))
[132] [CITE@en-US-x-hixie[HTML Standard]]
( ([TIME[2014-01-18 00:46:11 +09:00]] 版))