Mackerel のアクセシビリティ改善事例
by
azukiazusa
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Mackerel のアクセシビリ ティ改善事例 id:azukiazusa 2023/06/06 Hatena Engineer Seminer #25 アクセシビリティ編
Slide 2
Slide 2 text
自己紹介 ● azukiazusa ○ Mackerel チーム Web アプリケーションエンジニア ○ フロントエンド周りをよく見ている ● 技術記事をよく書いています
Slide 3
Slide 3 text
発表内容 ● Mackerel の開発チームにおいてアクセシビリ ティの改善を進めたステップ ● アクセシビリティに興味はあるが、具体的に どうやって進めていけばいいかという人向け
Slide 4
Slide 4 text
4
Slide 5
Slide 5 text
なぜ Mackerel でアクセシ ビリティ改善に取り組むの か
Slide 6
Slide 6 text
クラウド時代に最適な監視モデルを 使いやすいUIで提供し、システムの 運用・監視にチームで取り組む文化 を作る「クラウド運用の道標」とな るSaaS型サーバー監視サービス
Slide 7
Slide 7 text
使いやすい UI ● = ユーザビリティの高い UI ● ユーザビリティの高い状況を提供するために は、土台となるアクセシビリティが確保され て使える状態がある前提が必要
Slide 8
Slide 8 text
● ユーザビリティは 特定の状況での使 いやすさ ● アクセシビリティ は使える度合いや 状況の広さ 間嶋 沙知, 読みにくい「困った!」を解決す るデザイン, マイナビ出版, 2022, P23
Slide 9
Slide 9 text
チームで取り組む文化を作る ● チームのメンバー全員が障害なく Mackerel にアクセスできることが不可欠
Slide 10
Slide 10 text
アクセシビリティ改善の進め方 1. 個人の裁量で小さな実績を積み上げていく 2. 成果を積極的にアピールする 3. アクセシビリティに興味を持った人を巻き込 む
Slide 11
Slide 11 text
個人の裁量で小さな実績を積み上げていく ● アクセシビリティ改善自体は正しい行いであり、 否定されることはない ● しかし、プロジェクトには他にもやるべきことが たくさんある ● アクセシビリティ改善の優先度を上げるように説 得をするのは、なかなか大変
Slide 12
Slide 12 text
プロジェクト外の時間を利用する ● まずは「アクセシビリティの改善が行われ た」という事実が大事 ● Mackerel チームでは 1 スプリントごと 10% 今自分が一番やりたいことをやる時間が存在 する
Slide 13
Slide 13 text
個人で改善を進める際に意識したこと ● 小さな改善からトライする ● リリース告知に出せる単位を目標とする
Slide 14
Slide 14 text
具体的なアプローチ はじめは「キーボードのみですべての操作を可 能にする」から取り組むのがおすすめ
Slide 15
Slide 15 text
キーボードのみですべての操作を可能に ● キーボードは身近なデバイス ○ 結果が見えやすい ○ 検証を行いやすい ● キーボード操作を可能にするだけでも、多く の達成基準に影響がある
Slide 16
Slide 16 text
実際の改善内容
Slide 17
Slide 17 text
フォーカスリング サイドメニューのナビゲーション のフォーカスリングが表示されて いなかった 達成基準 2.4.7: フォーカスの可視化を理解する
Slide 18
Slide 18 text
フォーカスリング focus-visible 擬似ク ラスは、キーボードで操作 したときだけスタイルを適 用する
Slide 19
Slide 19 text
ボタンをフォーカス可能に ●
タグでボタン が実装されていた ● タグを使 うように 達成基準 2.1.1: キーボードを理解 する
Slide 20
Slide 20 text
成果を積極的にアピールする ● 改善によってできるようになったことをアウ トプットをすることが重要 ● チーム内外に向けて成果をアピールすること で、アクセシビリティに興味を持つ人を増や す活動にも繋がる 20
Slide 21
Slide 21 text
成果をアピールする方法 ● スプリントレビュー ● 社内勉強会 ● リリース告知 21
Slide 22
Slide 22 text
スプリントレビュー ● プロジェクト外のことをやる時間は 1 スプリ ントにごとに設けられているので、改善結果 を共有するのに最適 ● 動画を撮影してキーボード操作の様子を共有 すると、具体的に改善結果が伝わりやすい
Slide 23
Slide 23 text
社内勉強会 ● 社内にアピールする手段として、最も反響が ある ● 何回か発表を行ううちに、アクセシビリティ をやってる人として認知されるようになった
Slide 24
Slide 24 text
リリース告知 ● 外部にも成果をアピールする ● 告知担当の方と連携して告知を書く UI・アクセシビリティを改善しました ほか
Slide 25
Slide 25 text
リリース告知 ● アクセシビリティのコミュニティに対して、 アクセシビリティへの取り組みを実施してい る企業であることをアピールできる絶好の機 会 ● 外部にリリース告知を出している、という事 実を通じて社内においても認知も高まった 25
Slide 26
Slide 26 text
アクセシビリティに興味を持った人 を巻き込む ● 個人で小さな改善を積み重ね、成果をアピー ルしていくと、アクセシビリティに興味を持 つ人が増えていく ● 次のステップは複数人で改善に取り組むこと
Slide 27
Slide 27 text
開発合宿 ● 複数人で改善に取り組む場として、開発合宿 を利用した ● 機械チェックでアクセシビリティを改善する プロジェクトを提案
Slide 28
Slide 28 text
機械チェックを用いたアプローチ ● 問題の所在がわかりやすい ○ 複数人で作業を分担しやすい ○ 改善方法が明確なので、はじめての作業として取り組 みやすい ● 数字として結果が見える ○ 作業のモチベーションが維持しやすい ○ 成果としてアピールしやすい 28
Slide 29
Slide 29 text
開発合宿の成果 ● 機械的に検出された問題の 231 個の改善に成 功した ● デザイン上の観点も含めて議論できた VoiceOver などの支援技術の体験もできた
Slide 30
Slide 30 text
アクセシブルな状態を継続 可能にする
Slide 31
Slide 31 text
Mackerel のフロントエンドを触る人 が皆アクセシビリティの知識があるわ けではない
Slide 32
Slide 32 text
はじめからアクセシブルにする ● ESLint ルールの追加 ○ React:eslint-plugin-jsx-a11y ○ Vue:eslint-plugin-vue-a11y ● 既存の UI パーツを UI コンポーネントとして 提供する
Slide 33
Slide 33 text
UI コンポーネント ● 例えばタブのようなパーツ ○ アクセシビリティを考慮して実装するには、 WAI-ARIA に対する深い知識が必要
Slide 34
Slide 34 text
UI コンポーネント ● コンポーネントとして提供することで、詳細 な実装を知らなくてもアクセシビリティを担保でき る ● 既存のデザインを保ちつつアクセシブルな UI コン ポーネントを実装するには、Radix UI や Headless UI のようなヘッドレスな UI ライブラリがおすすめ
Slide 35
Slide 35 text
まとめ ● まずは個人の裁量で小さな改善を積み重ねる ● 成果を積極的にアピールして、アクセシビリ ティに興味を持つ人を増やして、複数人での 活動にしていく ● チームを飛び出してアクセシビリティを広げ る。社内の勉強会が最も効果的