Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アクセシビリティ_株式会社ニジボックス Katsuhito Karube

アクセシビリティ_株式会社ニジボックス Katsuhito Karube

リクルートグループ主催!『大規模メディアにおけるWeb開発の最前線』
https://business-and-creative.connpass.com/event/188628/

1623dd1adf096ba35ba33727d933e14c?s=128

株式会社NIJIBOX

December 18, 2020
Tweet

Transcript

  1. アクセシビリティ 株式会社ニジボックス 軽部 勝仁

  2. 自己紹介 会長にしごかれる日々を送っています Next.js, React などモダンな開発現場にいます アクセシビリティは3ヶ月前から

  3. 本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み

  4. 本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み

  5. ウェブアクセシビリティとは ウェブページにある情報や機能の利用しやすさを意味しま す。 引用:https://waic.jp/knowledge/accessibility/ アクセシビリティ → accessibility → a11y と略記されることもある

  6. ウェブアクセシビリティとは ウェブページにある情報や機能の利用しやすさを意味しま す。 引用:https://waic.jp/knowledge/accessibility/ とても抽象的


  7. 具体的には スクリーンリーダーで読み上げても伝わる? カラーコントラストが低くて読みにくくない? ♪ 読みやすい? 読みやすい?

  8. アクセシビリティの様々な切り口 目
 耳
 体
 状況
 機械


  9. アクセシビリティの様々な切り口 目
 耳
 体
 状況
 機械
 達成基準がある


  10. 達成基準 WCAG (Web Content Accessibility Guidelines) W3C の Web Accessibility

    Initiative (WAI) が勧告 WCAG 2.1 が最新(2.2 の勧告は2021年の予定) 国際的には ISO/IEC 40500:2012 (WCAG 2.0 の内容) 国内では JIS X 8341-3:2016 (WCAG 2.0 の内容)
  11. None
  12. None
  13. None
  14. アクセシビリティは必要不可欠


  15. 本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み

  16. 送信に失敗しました エラー内容が入ります。エラー内容が入ります。エラー内容が入ります。エ ラー内容が入ります。エラー内容が入ります。 閉じる

  17. 要件定義 ・最大256文字の動的テキスト ・エラーが起きた時に表示 ・「閉じる」ボタンをクリックすると非表示

  18. 要件定義 ・最大256文字の動的テキスト ・エラーが起きた時に表示 ・「閉じる」ボタンをクリックすると非表示 本当にこれだけ?


  19. アクセシビリティ要件 • role=”alert” をつける • 「閉じる」ボタンが button として認識される • Tab

    キーで「閉じる」ボタンにフォーカス • 「閉じる」ことが明示される • Enter キーなどでクリックの代替操作ができる • カラーコントラスト
  20. アクセシビリティ要件 • role=”alert” をつける • 「閉じる」ボタンが button として認識される • Tab

    キーで「閉じる」ボタンにフォーカス • 「閉じる」ことが明示される • Enter キーなどでクリックの代替操作ができる • カラーコントラスト 定義されない事が多い

  21. アクセシビリティ要件 • role=”alert” をつける • 「閉じる」ボタンが button として認識される • Tab

    キーで「閉じる」ボタンにフォーカス • 「閉じる」ことが明示される • Enter キーなどでクリックの代替操作ができる • カラーコントラスト エンジニアの裁量

  22. 非機能要件に いかにこだわれるかが エンジニアの真価

  23. アクセシビリティは エンジニアの力量によって 完成度が大きく変わる

  24. 本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み

  25. WCAG 適合をチェックするツール • Lighthouse • URL を入力して計測するタイプ • 外部から css

    を挿入してハイライトするものまで
  26. WCAG 適合をチェックするツール • Lighthouse • URL を入力して計測するタイプ • 外部から css

    を挿入してハイライトするものまで 機械には限界がある

  27. 送信に失敗しました エラー内容が入ります。エラー内容が入ります。エラー内容が入ります。エ ラー内容が入ります。エラー内容が入ります。 閉じる

  28. お名前 送信する メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所 郵便番号

    選択してください 都道府県 ︙
  29. お名前 送信する あ メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所

    郵便番号 選択してください 都道府県 ︙ 形式が正しくありません。 aria-invalid=”true”
  30. お名前 送信する メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所 郵便番号

    選択してください 都道府県 ︙ <fieldset> でグループ化
  31. お名前 送信する メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所 郵便番号

    選択してください 都道府県 ︙ <form> の内側に設置されてる?
  32. 文章の意味 や デザインの意図 マークアップ ← 人の力が必要

  33. 機械でできることは機械に任せて 人が考えられる時間を増やす

  34. Storybook コンポーネントのカタログ

  35. storybook-addon-a11y

  36. storybook-addon-a11y WCAG 適合をチェックできる

  37. 使いにくい場面があった

  38. storybook-addon-a11y WCAG 適合をチェックできる 全体管理が難しい


  39. CLI ツールを作った エラーを報告してくれるようにした

  40. 自動化して時間が増えた

  41. None
  42. None
  43. None
  44. None
  45. 時間が増えたおかげで 人力が必要な部分に注力


  46. 終わりに

  47. 作業者的なエンジニアではなく 開発メンバーの一人として取り組める

  48. ご清聴ありがとうございました