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

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