-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: WAI-ARIA role #181
feat: WAI-ARIA role #181
Conversation
// Skip if the role already exists. | ||
if (node.properties.role) { | ||
return; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HTML で role="role1 role2"
のようにして HAST を出力したところ Array ではなく String でした。role の性質としても単一の役割になるのでそう解析されるのだと思われます。
これを考慮して既に role 属性がある場合は処理をスキップするようにしました。
// Set the first target class found to role. | ||
for (const className of node.properties.className) { | ||
if (typeof className === 'string' && targetClassNames.includes(className)) { | ||
node.properties.role = `doc-${className}`; | ||
break; | ||
} | ||
} | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
role が単一となるように、WAI-ARIA 対象のクラスが複数あっても最初に見つかったものだけ処理しています。
ではなくて
となるべきです。 https://w3c.github.io/dpub-aria/#doc-abstract
とされてます。sectionのrole属性にする必要があります。sectionを生成する見出しに指定されたときのroleはすべてsectionのほうに指定するのでよいと思います。 |
@MurakamiShinyu |
はい、セクション化の処理での対応だけでよいと思います。それからフェンス記法をサポートしたら、そのときに。 |
とのことなので本 PR は破棄します。時間がとれたらセクション処理の改善として別途 PR 出します。 |
refs: #28
VFM v2 残件のうち対応が容易そうだったので、WAI-ARIA role を実装してみました。記法の追加ではなく #28 (comment) のように DPUB-ARIA へ定義されているクラス名を持つ要素があれば対応する role を doc-xxxx として追加します。