ARIA の変更
v5 では ARIA 1.3 のサポートが追加され、デフォルトの ARIA バージョンが 1.3 に変更されました。wai-aria ルールのオプション名も変更されています。
変更点
| 変更内容 | 影響を受けるユーザー |
|---|---|
| ARIA 1.3 サポートの追加(デフォルト) | すべてのユーザー |
1.3 で generic ロールが透過的に | すべてのユーザー |
1.3 で <aside> の条件付きロールマッピング | すべてのユーザー |
1.3 で image / img ロールが同義に | すべてのユーザー |
wai-aria オプションのリネーム | 設定に checkingRequiredOwnedElements があるユーザー |
ARIA バージョンの設定
デフォルトの ARIA バージョンは "1.3" になりました。以前の動作が必要な場合は、ruleCommonSettings で ariaVersion をグローバルに設定します。このプロパティの詳細は設定の移行ガイドを参照してください。
{
"ruleCommonSettings": {
"ariaVersion": "1.2"
}
}
ルールごとに設定することもできます:
{
"rules": {
"wai-aria": {
"options": {
"version": "1.2"
}
}
}
}
デフォルトは "1.3" です。ARIA 1.2 の動作が必要な場合のみ設定を変更してください。
Generic ロールの透過性(ARIA 1.3)
ARIA 1.3 で最も重要な変更です。generic ロールを持つ要素(素の <div> や <span> を含む)がアクセシビリティツリーの走査で透過的になります。
変更前(ARIA 1.2)
tablist と tab の間に <div> ラッパーを挟むと、親子ロールの関係が壊れていました:
<!-- ARIA 1.2: エラー -- <div> が tablist > tab の関係をブロック -->
<div role="tablist">
<div class="wrapper">
<button role="tab">Tab 1</button>
</div>
</div>
変更後(ARIA 1.3)
同じ HTML がパスします。ARIA 1.3 では generic または none ロールの要素を無視すると定義されています:
<!-- ARIA 1.3: OK -- <div>(generic)は透過的 -->
<div role="tablist">
<div class="wrapper">
<button role="tab">Tab 1</button>
</div>
</div>
バージョンによる動作の違い
| 動作 | '1.1' / '1.2' | '1.3' |
|---|---|---|
generic が子ロールで透過的 | いいえ | はい |
generic が親ロールで透過的 | いいえ | はい |
presentation / none が子ロールで透過的 | はい | はい |
presentation / none が親ロールで透過的 | いいえ | はい |
<aside> の条件付きロールマッピング(ARIA 1.3)
<aside> 要素が ARIA 1.3 仕様に基づく条件付きロールマッピングを使用するようになりました:
<aside>が<article>、<aside>、<main>、<nav>、<section>の子孫でない場合 → ロールはcomplementary<aside>がこれらのセクショニング要素の子孫である場合 → ロールはgeneric
landmark-roles ルールもこれに合わせて更新されました。complementary はトップレベルのランドマークとしてチェックされなくなりました。
ARIA 1.3 がデフォルトになったため、この変更は全ユーザーに即座に影響します。セクショニング要素内で <aside> を使用している場合、リント結果が変わる可能性があります。
image / img ロールの同義語(ARIA 1.3)
ARIA 1.3 では image がプライマリロール名、img がシノニムになりました。いずれかが許可されるロールに含まれる場合、両方が受け入れられます:
<!-- ARIA 1.2: 許可されるロールは "img" のみ -->
<!-- ARIA 1.3: "image" と "img" の両方が許可 -->
<img alt="photo" />
ルールオプションのリネーム
wai-aria ルールのオプション checkingRequiredOwnedElements がリネームされました:
| v5(新) | v4(非推奨) |
|---|---|
checkingAllowedAccessibilityChildRoles | checkingRequiredOwnedElements |
旧名もそのまま動作します。都合の良いタイミングで更新してください。
{
"rules": {
"wai-aria": {
"options": {
"checkingAllowedAccessibilityChildRoles": false
}
}
}
}
用語の変更(カスタムルール作成者向け)
このセクションは内部 API の変更を扱います。ARIA ルールの設定のみ行う場合はスキップできます。
ARIA 1.3 でいくつかの内部概念がリネームされました。ARIARole 型は新旧両方のプロパティ名を公開しています:
| ARIA 1.3(新) | ARIA 1.2(非推奨) |
|---|---|
requiredAccessibilityParentRole | requiredContextRole |
allowedAccessibilityChildRoles | requiredOwnedElements |
両方のプロパティは同じ値を保持します。旧名は @deprecated エイリアスとして残されています。