タグ

ブックマーク / zenn.dev/yusukehirao (4)

  • WAI-ARIAを学ぶときに整理しておきたいこと

    結論 ロールについて知る HTMLの暗黙のロールを知る ロールを知った上でロールに対して使用できるプロパティ/ステートを使う (おまけ) markuplintを使おう aria属性を使う前に まず、いきなりaria-labelやaria-selectedとかに手を出さない。 aria-selectedとかを発見してしまうと「option要素以外にもselectedみたいな意味を付加できるんだ!すげえ!使ってみよう!」みたいな気持ちが沸き上がってしまう。わかる。とってもよくわかるよ。当時ぼくもそうだったから。 ただ、そこはぐっと我慢してほしい。 なぜかと言うと、aria属性は、使っていいときと悪いときがある。きちんとWAI-ARIAという仕様と、ARIA in HTMLやCore Accessibility API Mapping (Core-AAM)という仕様で決められていっている[1]の

    WAI-ARIAを学ぶときに整理しておきたいこと
  • フロントエンドid属性管理戦略

    アクセシビリティのチェックなどを行っているとよく発見される問題にIDの重複がある。HTMLではid属性はグローバル属性でありすべての要素に指定できるが、その値は一意である必要があり、ドキュメント内において重複があってはならないことになっている。 ただ実際に実装してみたり開発経験のある人ならご存知のとおり、滅多なことでこの重複が問題になることは少ない。HTMLのパースは中断することなくブラウザは要素を描画するし、CSSのセレクタは期待通り要素を特定してスタイルを適用する。なのでこの重複に対してそこまで気を使ってこなかった人も多いだろうし、先のアクセシビリティチェックでよく発見されるのもそういった背景があるのだろうと思う。 しかし表面的に問題が起きていなくとも、実際には重大な構文エラーであり、潜在的に多くの問題を抱えている。IDの重複が引き起こす問題は単純で、そのIDを参照する処理はひとつめの

    フロントエンドid属性管理戦略
  • アクセシビリティの琴線に触れるいくつかのアプローチ

    デザイナーやエンジニアがアクセシビリティのそれらに共感して「やっていき」になっていくとき、いくつかのパターンがあると思っています。新人教育や講義などでアクセシビリティについて語るにあたって 「どうやったら知識としてインストールされるだけなく、モチベーションを上げていわゆる『やっていき』に開眼させることができるか」 を常々考えています。十人十色なので、少ないパターンだと響かないで不発に終わることもあります。もちろん、そもそもそういうタイプではない(そこに良し悪しはありません)のかもしれませんが、潜在的に素養があるのにアプローチを間違えただけだとしたら非常に勿体ないですよね。今回はいくつかパターンを考えてみようと思います。 人権 「アクセシビリティは人権だ」という考え方です。アクセシビリティを向上させることは社会モデルにおける障害を取り除くことです。「すべての人類に与えられるべき権利」だと思え

    アクセシビリティの琴線に触れるいくつかのアプローチ
  • アクセシブルじゃないクリックイベントを発見する

    (() => { "use strict"; const elements = Array.from(document.querySelectorAll("*")); const clickEvents = elements .map((element) => { const listeners = getEventListeners(element); const clickListeners = listeners.click || []; clickListeners.forEach((event) => (event.owner = element)); return clickListeners; }) .flat(); for (const event of clickEvents) { if (event.owner.matches("button, a[href]")) {

    アクセシブルじゃないクリックイベントを発見する
    field_combat
    field_combat 2021/05/24
    aかボタン要素以外のクリックイベントを抽出するスクリプト
  • 1