Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ARIA Notifyについて
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ryokatsuse
April 19, 2026
Technology
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ARIA Notifyについて
ryokatsuse
April 19, 2026
More Decks by ryokatsuse
See All by ryokatsuse
inferと仲良くなる10分間
ryokatsuse
1
520
アクセシビリティの自動テストはどのように行われているのか? axe-coreの処理を巡る旅
ryokatsuse
0
760
友達ではなく仲間とはなにか? 〜『映像研には手を出すな!』から学ぶ仕事の取り組み方〜
ryokatsuse
0
880
shadcn/uiで考えるコンポーネント設計
ryokatsuse
7
2.4k
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
4
2.7k
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.6k
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.7k
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
890
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
1
1k
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
280
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
320
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
190
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.3k
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
140
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
The SEO Collaboration Effect
kristinabergwall1
1
550
Test your architecture with Archunit
thirion
2
2.4k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
200
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
690
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Transcript
ARIA Notifyについて CA11Y #3 〜アクセシビリティのLTしようぜ〜 2026/04/20
ARIA live regions(ライブリージョン) 支援技術(スクリーンリーダーなど)に対して、視覚的な内容の変化をユーザーに通知できるもの。 以下の4つがあります。 aria-live aria-atomic aria-relevant aria-busy 目的
ユーザーにコンテンツの更新を通知できる。 WAI-ARIAライブリージョンの基礎
aria-liveの例 1 2 3 4 5 6 <!-- aria-live属性を持つ領域を用意 -->
<div id="notification" aria-live="polite" class="visually-hidden"> </div> // DOMの中身を変更すると、スクリーンリーダーが変更を読み上げる notification.textContent = "保存しました"; aria-live="polite" はユーザーが操作を終えたあとに通知する。 "assertive" は他の操作をしているときでも即座に割り込んで通知する。
チャット 田中 おはようございます 田中 今日のミーティングは何時? 自分 14時からです 田中 了解!ありがとう よろしくお願いし...
new 「14時からです」とメッセージを送信する 「よろしくお願いします」とチャット欄に入力 「了解!ありがとう」というメッセージが届く aria-liveが通知を受け取る(assertiveを設定) ユーザーが入力している時でもスクリーンリーダーが「了 解!ありがとう」と読み上げる
ARIA live regionsのつらみ HTMLで隠し要素のハックをしないと実現出来ない場合があってウザい😨 aria-live="assertive"を使いすぎるとユーザーが操作している最中に何度も割り込んでくる ことがあり疲弊😱 スクリーンリーダーによって挙動が異なることがあって発狂🤬🤬🤬🤬 詳しくは以下のコンテンツにまとまっています。 aria-live がうるさい
これらのつらみを解決するのがARIA Notify!
ARIA Notify 1 2 3 4 5 6 // 基本の使い方
document.ariaNotify("保存しました"); // 要素から呼ぶこともできる element.ariaNotify("3件のエラーがあります"); // 緊急の通知は high で割り込み element.ariaNotify("接続が切れました", { priority: "high" }); JavaScriptのAPIから好きなタイミングで読み上げしてほしい内容を支援技術に読ませるもの。 ライブリージョンとは異なりDOMに依存せずに使える。 Document から呼ぶと <html> の lang属性で読み上げ言語が決まる。 priority:normal は現在の読み上げの後、high は即座に割り込んで読み上げる。
メール作成 To:
[email protected]
件名: 来週のミーティングについて 田中さん お疲れ様です。 来週の定例ミーティングですが、 火曜日の14時に変更可能でしょうか。 ご確認よろしくお願いいたします。
| 送信する 送信中... ! 送信に失敗しました。接続を確認してください メールを作成して送信ボタンを押す 送信中ボタンに変わる 送信に失敗したトーストが表示される ariaNotifyを呼び出す 「送信に失敗しました。接続を確認してください」と読み 上げる
ARIA Notifyが使えそうなシーン ショッピングカートに商品が追加されたとき スライドのプレゼンテーションモードでページ送り リッチエディタなどで、Ctrl+Bを押下して文字がBoldになったことを通知 フォームの入力中のリアルタイムバリデーション 電車のリアルタイム運行で最寄り駅に電車が到着するときに通知 本当はこれを作ってデモしたかった!!
ARIA Notifyとライブリージョンの関係性 ARIA Notifyは、視覚的なライブリージョンが不要なシナリオでのライブリージョンを置き換えるもの。 隠し要素にライブリージョンを設定してアナウンスさせるようなハックを、ARIA Notifyで置き換え られる。 ライブリージョンそのものを廃止するわけではない。 ライブリージョンの通知は、ARIA Notifyの通知より常に優先される。
ARIA live regions ARIA Notify 視覚的な領域あり 画面にも更新が表示される 例: ・チャットの新着メッセージ ・検索結果の更新 ・株価や試合スコアの更新 視覚的な領域なし 通知のみを支援技術に届ける 例: ・操作の成否の通知 ・キーボード操作の確認 ・エラーやトースト通知 https://developer.mozilla.org/en-US/docs/Web/API/Document/ariaNotify https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Accessibility/AriaNotify/explainer.md
ARIAの仕様としても史上初の命令的なAPI これまでのARIAはすべて宣言的だった。 HTMLにaria-checked="true" と書く。 JavaScriptでelement.ariaChecked = "true" と設定する。 どちらも「要素の状態を宣言的に記述する」もの ARIA
Notifyは命令的。 document.ariaNotify() とメソッドを呼ぶ。 「今この瞬間、これを読んで」と支援技術にお願いする。 今までは宣言的なものしかなくARIAMixinというスペックに定義されていた。 ARIA 1.3(Draft)ではARIANotifyMixinという新しいスペック定義が新設された。 https://w3c.github.io/aria/#ARIANotifyMixin
まとめ ライブリージョンはつらい ARIA Notifyは、支援技術に好きなタイミングで「これ読んで」と直接お願いできるAPI ARIA Notifyはライブリージョンを必ずしも置き換えるものではない ARIA Notifyは、ARIA仕様の中で史上初の命令的なAPI
ご清聴ありがとうございました! infixer Timee, Inc. X(Twitter) GitHub Cosense Bluesky