Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ARIA Notifyについて
Search
ryokatsuse
April 19, 2026
Technology
260
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
Web Haptics APIを語りたい
ryokatsuse
0
250
inferと仲良くなる10分間
ryokatsuse
1
570
アクセシビリティの自動テストはどのように行われているのか? axe-coreの処理を巡る旅
ryokatsuse
0
770
友達ではなく仲間とはなにか? 〜『映像研には手を出すな!』から学ぶ仕事の取り組み方〜
ryokatsuse
0
900
shadcn/uiで考えるコンポーネント設計
ryokatsuse
7
2.4k
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
4
2.7k
Other Decks in Technology
See All in Technology
Apache Iceberg が拓く AI 時代のオープンレイクハウス
tomtanaka
0
190
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
310
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
150
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
410
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
520
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
220
AI coding 整合正規方法
philipz
0
560
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
310
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
1
1.1k
Goodbye ShellScript, Hello File-based App
shunsock
0
1.3k
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.8k
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
490
Why Our Code Smells
bkeepers
PRO
340
58k
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
Tell your own story through comics
letsgokoyo
1
1.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
250
The Spectacular Lies of Maps
axbom
PRO
1
1k
GraphQLとの向き合い方2022年版
quramy
50
15k
Test your architecture with Archunit
thirion
2
2.4k
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