デザイナーがTSKaigiでWAI-ARIAの話をしてみて / Speaking as a Designer: WAI-ARIA at TSKaigi
by
ymrl
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
デザイナーがTSKaigiで WAI-ARIAの話をしてみて @ymrl TSKaigi 2025 本編で話せなかったこと、話し⾜りなかったこと 2025年5⽉23⽇
Slide 2
Slide 2 text
⾃⼰紹介 ● ymrl (⼭本 伶) ○ 「ymrl」は「やまある」と読みます ○ フリー株式会社 デザイナー/エンジニア ● 「Webアプリケーションアクセシビリティ」共著者 ● Software Design 6⽉号の特集に記事を書きました ● ⾝体の調⼦が(ずっと)悪いので座って喋ります みなさん、⾻と筋⾁は⼤事にしてください……
Slide 3
Slide 3 text
セッションのフォローアップ
Slide 4
Slide 4 text
今回の登壇の概要 ● WAI-ARIAの属性について、Reactの型定義 (@types/react)では ○ role に⾃由な⽂字列が使え、role定義もWAI-ARIA 1.1のまま ● TypeScriptのJSXでは、属性名に - があると型が未定義でもスルーされる ● aria-* 属性は kebab-case ではなく camelCase で表現したほうが安⼼ ● camelCase で role に対して許可された aria-* 属性のみを使えるようにする aria-attribute-types を作ってみた
Slide 5
Slide 5 text
TypeScriptのJSXには驚きの無法地帯が存在する TypeScript Playground
Slide 6
Slide 6 text
aria-attribute-types のコードと向き合っています ● TSKaigiで発表した時点のコードでは不完全だったことに気付いた ● 設計から⾒直して直しています。いまこの会場でも。
Slide 7
Slide 7 text
やたらマニアックな内容だったのではと思っている ● そもそもrole属性やaria-*属性を使っている⼈がそんなに多くないだろう ● アクセシビリティの話でよくある「なぜ⼤切か」みたいな話をしていない ● WAI-ARIAの仕様とTypeScriptの型定義の話ばかりを延々としている ● ふだんは「role属性やaria-*属性をなるべく使うな」と⾔っているので、 いつも喋っているのとは真逆の内容になっていた ○ role 属性とは、aria-* 属性とは、WAI-ARIA とは、いったい何なのか、 いつ使うべきなのか
Slide 8
Slide 8 text
WAI-ARIAの属性はなるべく使わないでください ● WAI-ARIAのaria-*属性を使う上での罠について発表しました ○ たまたま仕事中に発⾒して、⾯⽩いなと思って温めていたネタです ○ TypeScriptを使う⼈の知的好奇⼼を刺激できると思っただけです ● これはアクセシビリティに取り組む上で必須なものではないです!! ○ 多くの場⾯は、role属性やaria-*属性を指定する必要はありません ○ HTML要素が持つ暗黙の WAI-ARIAセマンティクスに頼るべきです ○ 下⼿に使うより無いほうがマシ(No ARIA is better than Bad ARIA)
Slide 9
Slide 9 text
アクセシビリティを学ぶには ● role属性やaria*属性のことは⼀旦忘れて、以下の順で読んでください ○ ⾒えにくい、読みにくい、「困った!」を解決するデザイン ○ ウェブアクセシビリティ導⼊ガイドブック ○ Webアプリケーションアクセシビリティの1,2,3,5章 ● role属性やaria*属性は、Webアプリケーションアクセシビリティの 3章で初登場し、5章で助演男優賞‧助演⼥優賞くらいの活躍をします
Slide 10
Slide 10 text
Software Designの最新号もおすすめです
Slide 11
Slide 11 text
デザイナーとしての話
Slide 12
Slide 12 text
わたしはデザイナー ● もともとWebデザインからHTMLやプログラミングに興味を持った ● 学⽣時代はインタラクションデザインの研究室に所属 ● エンジニアとして就職、freeeへもエンジニアとして転職 ● UIデザインや実装が揃っていないこと、アクセシビリティへの課題意識から デザイナーと⼀緒にデザインシステムをつくりはじめた ● 希望を出してデザイナーに社内異動
Slide 13
Slide 13 text
デザイナーであることにこだわりがある ● 開発に関わる上で、使う⼈のことを考えずにいることができない ○ エンジニアリングよりもユーザーのことにフォーカスしていたい ● コードを書くのも絵を描くのも、ソフトウェア開発のプロセス内の⼿段 ○ ユーザーの元に、最終的に⽬的に適うものが届くことが重要 ○ 思い描いたものをそのままユーザーに届けるためにはコードを書く ● デザインシステムのユーザーは、社内の開発者 ○ 社内の開発者もユーザーであり、開発しやすいものを届けたい
Slide 14
Slide 14 text
https://x.com/ymrl/status/1924062051649175880
Slide 15
Slide 15 text
現在: デザイナーとしてコードを書いたり教えたり ● 会社ではデザインシステムに関していろいろ状況が変化していった ○ 開発⽣産性を上げられるデザインツール‧HTML/CSS/JS のライブラリ ○ freeeのUIデザイン⾃体をもっと良いデザインにしていきたい ○ デザインプリンシプル策定‧より⼤きな粒度のコンポーネントへ ● コードを書くのは⼿段 ○ 実現したいUIを、最も早く⾼品質に作るには⾃分がやるしかない ● 最近は⾃分が書くだけでなく、周囲のデザイナーに教えようとしている
Slide 16
Slide 16 text
freeeのデザイナーのイベントがあります! freee Application Designerの姿 ―業務デザインの裏側⼤公開!― 2025/06/19(⽊) 19:00 〜 21:00 フリー株式会社 ⼤崎オフィス + YouTube Live https://freee.connpass.com/event/356728/
Slide 17
Slide 17 text
デザイナーとTypeScript
Slide 18
Slide 18 text
https://x.com/ymrl/status/1909465672079622213
Slide 19
Slide 19 text
多くのデザイナーにとってのTypeScript エンジニア「フロントエンドだけなら簡単だからやってみませんか」 デザイナー「ワーイ」 Node.js, npm, TypeScript「「「こんにちは」」」 デザイナー「ウッ..ワ...ワァ....」
Slide 20
Slide 20 text
TypeScriptの難しさ ● 「JavaScriptを書けばブラウザで動く」という話をした直後に、 「現場では別の⾔語で書いています」という話をしなければいけない ● 黒い画⾯が怖い、エラーメッセージが怖いという状況で、 黒い画⾯で怒られるための仕組みを⽤意しなければならない ● 「型」の概念を説明しづらい、理解しづらい ● 難しいものに向き合って解きほぐすのが仕事のデザイナーなので、 難しいものが難しいまま存在していることが気になってしまう
Slide 21
Slide 21 text
じつはこれはエンジニアも同じなのでは ● プロジェクトに参画している全員が、TypeScriptを好きで書いているのか? ● TypeScriptを採⽤する利点を説明できるのか?納得できているのか? ● 実はコンパイラに怒られる箇所を仕⽅なしに直しているだけなのでは?
Slide 22
Slide 22 text
TSKaigiは熱量が⾼いイベントだったが…… ● 中級者以上を対象とするトークが多く、難しいという声もちらほら聞こえた ○ 他の場所では聞けない話が多く、個⼈としては楽しく参加しました ● 初級TypeScriptユーザーが来年の開催までに中級者になれるだろうか? ○ 学習のきっかけを⾃⼒で掴める環境になっているだろうか? ○ ステップアップしていくのに必要なリソースに辿りつけるだろうか? ● TypeScriptユーザーの裾野はこれからも広がっていけるだろうか? ○ 「なんか知らんけどAIが教えてくれるヤツ」になっていないだろうか?
Slide 23
Slide 23 text
気軽にステップアップできる環境があるといいと思ってる ● 現状のTypeScriptは、初級者にとって⼤きな壁があるように⾒える ○ ReactやVueのユーザーは増えているが、TypeScriptの話を 初級者がしている様⼦はあまり⾒られないように⾒える ○ 教える側として、TypeScriptをどう教えていけばいいかわからない ● 初級者が徐々にTypeScriptのことを知っていくにはどうすればいいのか? ○ すぐ難しめ‧分厚めな本が出てくるイメージ ○ いい教材が知りたいです!薄くてやさしいやつ!!
Slide 24
Slide 24 text
そういう感じで 来年のTSKaigiも楽しみにしています!
Slide 25
Slide 25 text
本とか雑誌とか
Slide 26
Slide 26 text
楽天ブックスのキャンペーンのお知らせ 「Webアプリケーションアクセシビリティ」の アクリルキーホルダーまたはアクリルスタンドと、 サイン本のセットが楽天ブックスで販売中です 「モバイルアプリアクセシビリティ⼊⾨」 「Webを⽀える技術」 「オブジェクト指向UIデザイン」 「縁の下のUIデザイン」 でも、キャンペーン実施中です
Slide 27
Slide 27 text
freeeのデザイナーのイベントがあります! freee Application Designerの姿 ―業務デザインの裏側⼤公開!― 2025/06/19(⽊) 19:00 〜 21:00 フリー株式会社 ⼤崎オフィス + YouTube Live https://freee.connpass.com/event/356728/
Slide 28
Slide 28 text
ご清聴ありがとう ございました