Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
takenspc
PDF, PPTX
4,296 views
アクセシビリティオブジェクトについて
2014年7月13日のブラウザエンジン先端観測会での発表内容です。 http://atnd.org/events/52121
Engineering
◦
Read more
18
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 63
2
/ 63
3
/ 63
4
/ 63
5
/ 63
6
/ 63
7
/ 63
8
/ 63
9
/ 63
10
/ 63
11
/ 63
12
/ 63
13
/ 63
14
/ 63
15
/ 63
16
/ 63
17
/ 63
18
/ 63
19
/ 63
20
/ 63
21
/ 63
22
/ 63
23
/ 63
24
/ 63
25
/ 63
26
/ 63
27
/ 63
28
/ 63
29
/ 63
30
/ 63
31
/ 63
32
/ 63
33
/ 63
34
/ 63
35
/ 63
36
/ 63
37
/ 63
38
/ 63
39
/ 63
40
/ 63
41
/ 63
42
/ 63
43
/ 63
44
/ 63
45
/ 63
46
/ 63
47
/ 63
48
/ 63
49
/ 63
50
/ 63
51
/ 63
52
/ 63
53
/ 63
54
/ 63
55
/ 63
56
/ 63
57
/ 63
58
/ 63
59
/ 63
60
/ 63
61
/ 63
62
/ 63
63
/ 63
More Related Content
PPTX
「マシンリーダビリティ」がユーザー体験を加速する
by
Yoshinori OHTA
PDF
アクセシビリティとこれからのWebデザイン
by
力也 伊原
PDF
一般企業におけるWebアクセシビリティの進め方
by
Web Accessibility Infrastructure Committee (WAIC)
PDF
Basic HTML Introduction
by
Minoru Hayakawa
PDF
なぜ企業はWebアクセシビリティに取り組むのか?
by
Web Accessibility Infrastructure Committee (WAIC)
PPTX
ブラウザから飛び出すWeb技術とHTML5
by
Wakasa Masao
PDF
react-ja.pdf
by
ssuser65180a
PPTX
HTML5から始まる技術革新
by
Wakasa Masao
「マシンリーダビリティ」がユーザー体験を加速する
by
Yoshinori OHTA
アクセシビリティとこれからのWebデザイン
by
力也 伊原
一般企業におけるWebアクセシビリティの進め方
by
Web Accessibility Infrastructure Committee (WAIC)
Basic HTML Introduction
by
Minoru Hayakawa
なぜ企業はWebアクセシビリティに取り組むのか?
by
Web Accessibility Infrastructure Committee (WAIC)
ブラウザから飛び出すWeb技術とHTML5
by
Wakasa Masao
react-ja.pdf
by
ssuser65180a
HTML5から始まる技術革新
by
Wakasa Masao
Similar to アクセシビリティオブジェクトについて
PDF
HTML5時代のWebデザイン
by
masaaki komori
PPTX
HTML5最新動向
by
Shumpei Shiraishi
PPTX
HTML5とWeb開発に関する最新動向
by
Shumpei Shiraishi
PDF
Java scriptの進化
by
maruyama097
PPTX
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
by
Kondo Hitoshi
PDF
JavaScript And Keywords
by
uupaa
PDF
Web is the OS (Firefox OS)
by
dynamis
PDF
The forefront of html5 implementation
by
Satoshi Tanaka
PDF
The return of Mobile5 #mobile5
by
Yusuke Hirano
PDF
いまさら聞けないHTML5概要
by
yoshikawa_t
PDF
Webデザインにおけるアクセシビリティへの取組み
by
Mitsue-Links Co.,Ltd. Accessibility Department
PDF
Kilimanjaro Event
by
dynamis
PPTX
Web Componentsのアクセシビリティ
by
Mitsue-Links Co.,Ltd. Accessibility Department
PDF
Concentrated HTML5 & Attractive HTML5
by
Sho Ito
PPTX
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
by
近藤 繁延
PDF
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
by
Futomi Hatano
PDF
Visual Web Developer 2010 とExpression Web 4 で構築する HTML5 と JavaScript
by
Osamu Monoe
KEY
Html5制作の現在
by
Masakazu Muraoka
PDF
React+Redux+Node.js+Raspberry Piで ビデオプレイヤーを作りたかった話
by
Akira Fukuoka
PDF
Tech.G HTML5 プレ講座
by
Atsushi Miura
HTML5時代のWebデザイン
by
masaaki komori
HTML5最新動向
by
Shumpei Shiraishi
HTML5とWeb開発に関する最新動向
by
Shumpei Shiraishi
Java scriptの進化
by
maruyama097
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
by
Kondo Hitoshi
JavaScript And Keywords
by
uupaa
Web is the OS (Firefox OS)
by
dynamis
The forefront of html5 implementation
by
Satoshi Tanaka
The return of Mobile5 #mobile5
by
Yusuke Hirano
いまさら聞けないHTML5概要
by
yoshikawa_t
Webデザインにおけるアクセシビリティへの取組み
by
Mitsue-Links Co.,Ltd. Accessibility Department
Kilimanjaro Event
by
dynamis
Web Componentsのアクセシビリティ
by
Mitsue-Links Co.,Ltd. Accessibility Department
Concentrated HTML5 & Attractive HTML5
by
Sho Ito
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
by
近藤 繁延
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
by
Futomi Hatano
Visual Web Developer 2010 とExpression Web 4 で構築する HTML5 と JavaScript
by
Osamu Monoe
Html5制作の現在
by
Masakazu Muraoka
React+Redux+Node.js+Raspberry Piで ビデオプレイヤーを作りたかった話
by
Akira Fukuoka
Tech.G HTML5 プレ講座
by
Atsushi Miura
アクセシビリティオブジェクトについて
1.
© GNOME Project,
@Takenspc 1 アクセシビリティオブジェクトについて 2014年7月13日 ブラウザエンジン先端観測会
2.
© GNOME Project,
@Takenspc 2 自己紹介 ● @Takenspc ● 他の発表者と違って一般人
3.
© GNOME Project,
@Takenspc 3 今回の内容 ● ブラウザーの「HTML5対応」をアクセシビリティAPI の側面から見る、ための基礎を押さえる
4.
© GNOME Project,
@Takenspc 4 目次 ● アクセシビリティオブジェクトとは何か ● アクセシビリティオブジェクトの作られ方 ● 「HTML5対応」とは何か
5.
© GNOME Project,
@Takenspc 5 アクセシビリティオブジェクトとは何か
6.
© GNOME Project,
@Takenspc 6 アクセシビリティとは何か ● Access + Ability:アクセスできる ● A11YやAXと略される ● Webだけの話ではない
7.
© GNOME Project,
@Takenspc 7 Webアクセシビリティ ● 誰でもWebにアクセスして使うことができる
8.
© GNOME Project,
@Takenspc 8 Webへのアクセス コンテンツ ブラウザー デバイス ユーザー
9.
© GNOME Project,
@Takenspc 9 Webへのアクセス コンテンツ ブラウザー デバイス ユーザー支援技術
10.
© GNOME Project,
@Takenspc 10 支援技術(Assistive Technology) ● U.S. National Multiple Sclerosis Society – 特定の機能を使いやすくしたり、(そのままでは行えな かった機能を)行えるようにするための、全ての道具、製 品、デバイス Pro HTML5 Accessibilityからの孫引き(翻訳は発表者)
11.
© GNOME Project,
@Takenspc 11 支援技術(Assistive Technology) ● 今回: – WebブラウザーとAPIを介して動作する、Webコンテンツ の特定の機能を使いやすくしたり、(そのままでは行えな かった機能を)行えるようにするための、全ての道具、製 品、デバイス WAI-ARIA 1.0における定義ともそんなにずれていないと思う。
12.
© GNOME Project,
@Takenspc 12 支援技術の例 Just Speak(音声によるAndroid端末の操作) TalkBack(スクリーン・リーダー)
13.
© GNOME Project,
@Takenspc 13 アクセシビリティAPI ● ブラウザーと支援技術が情報や操作のやりとりに使う API ● OS/プラットフォームレベルでのAPI コンテンツ ブラウザー デバイス ユーザー支援技術
14.
© GNOME Project,
@Takenspc 14 アクセシビリティAPIの種類 ● MSAA (Windows) – IAccessble2 ● UIA (Windows) ● ATK + AT-SPI (Linuxなど) ● OS X Accessibility Protocol (OS X)
15.
© GNOME Project,
@Takenspc 15 アクセシビリティAPIの特徴 ● アクセシビリティAPIの語彙、セマンティクスは HTMLとは異なる ● ブラウザーがコンテンツをアクセシビリティAPIのオ ブジェクト(アクセシビリティオブジェクト)に変換
16.
© GNOME Project,
@Takenspc 16 小まとめ ● ブラウザーと支援技術はアクセシビリティAPIを使っ て情報や操作をやりとり ● ブラウザーはコンテンツの情報を支援技術に伝える責 任 コンテンツ ブラウザー デバイス ユーザー支援技術
17.
© GNOME Project,
@Takenspc 17 アクセシビリティオブジェクトの作られ方
18.
© GNOME Project,
@Takenspc 18 アクセシビリティツリー Alex's blog: DOM Inspector as accessibility tool http://asurkov.blogspot.jp/2012/02/dom-inspector-as-accessibility-tool.html
19.
© GNOME Project,
@Takenspc 19 アクセシビリティオブジェクトの情報 ● 役割:種類 ● 状態:動的な属性 ● プロパティ:静的な属性 ● その他 – 位置と大きさ、文字の大きさ、色… Alex's blog: DOM Inspector for accessibility. New features. http://asurkov.blogspot.jp/2013/02/dom-inspector-for-accessibility-new.html
20.
© GNOME Project,
@Takenspc 20 アクセシビリティオブジェクトを作るには ● アクセシビリティオブジェクトを作るには – セマンティクスに関する情報 – レイアウトに関する情報 の両方が必要
21.
© GNOME Project,
@Takenspc 21 レンダリングエンジンの処理 How Browsers Work: Behind the scenes of modern web browsers - HTML5 Rocks http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
22.
© GNOME Project,
@Takenspc 22 レンダリングエンジンの処理 How Browsers Work: Behind the scenes of modern web browsers - HTML5 Rocks http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
23.
© GNOME Project,
@Takenspc 23 レンダリングエンジンの処理 Efficient CSS Animations [Slide 2 of 29: The Pipeline from Markup to Graphics] http://dbaron.org/talks/2014-06-04-cssday/slide-2.xhtml
24.
© GNOME Project,
@Takenspc 24 アクセシビリティオブジェクトを作るには ● アクセシビリティオブジェクトを作るには – セマンティクスに関する情報 – レイアウトに関する情報 の両方が必要 ● DOMツリーとレンダリングツリーの情報を組み合わ せて作る
25.
© GNOME Project,
@Takenspc 25 アクセシビリティオブジェクトの作られ方 変換 内部表現 ブラウザー 支援 技術 DOMツリー レンダリング ツリー アクセシビリティ ツリー アクセシビリティ ツリー 支援技術 プラットフォーム固有
26.
© GNOME Project,
@Takenspc 26 アクセシビリティオブジェクトの作られ方 変換 内部表現 ブラウザー 支援 技術 DOMツリー レンダリング ツリー アクセシビリティ ツリー アクセシビリティ ツリー 支援技術 プラットフォーム固有
27.
© GNOME Project,
@Takenspc 27 Gecko ● アクセシビリティオブジェクトへのアクセス発生 ● アクセシビリティオブジェクトの生成 – DOMツリーをイテレート ● アクセシビリティオブジェクトの生成
28.
© GNOME Project,
@Takenspc 28 DOMツリーをイテレート ● mozilla::a11y::TreeWalker void Accessible::CacheChildren() { (略) TreeWalker walker(this, mContent); Accessible* child = nullptr; while ((child = walker.NextChild()) && AppendChild(child)); }
29.
© GNOME Project,
@Takenspc 29 アクセシビリティオブジェクトの生成 ● TreeWalker::NextChildInternal – nsAccessibilityService::GetOrCreateAccessibleを呼び出 し (略) Accessible* accessible = mFlags & eWalkCache ? mDoc->GetAccessible(childNode) : GetAccService()->GetOrCreateAccessible(childNode, mContext, &isSubtreeHidden); (略)
30.
© GNOME Project,
@Takenspc 30 アクセシビリティオブジェクトの生成 ● nsAccessibilityService::GetOrCreateAccessible – 非表示だったらオブジェクトを作らない – テキストノードかどうかを見てオブジェクトを作る – WAI-ARIAの属性を見てオブジェクトを作る – 要素の型や属性を見てオブジェクトを作る – Frameの種類を見てオブジェクトを作る
31.
© GNOME Project,
@Takenspc 31 WebCore、Blink ● アクセシビリティオブジェクトへのアクセス発生 ● アクセシビリティオブジェクトの生成 – レンダーツリーをイテレート (canvas要素の子孫はDOMツリーをイテレート) ● アクセシビリティオブジェクトの生成
32.
© GNOME Project,
@Takenspc 32 アクセシビリティオブジェクトの生成 ● WebDocument::accessibilityObject Chromiumの例 WebAXObject WebDocument::accessibilityObject() const { const Document* document = constUnwrap<Document>(); return WebAXObject(document->axObjectCache()- >getOrCreate(document->renderView())); }
33.
© GNOME Project,
@Takenspc 33 アクセシビリティオブジェクトの生成 ● AXObjectCache::getOrCreate Blinkの例 AXObject* AXObjectCache::getOrCreate(RenderObject* renderer) { (略) RefPtr<AXObject> newObj = createFromRenderer(renderer); (略) return newObj.get(); }
34.
© GNOME Project,
@Takenspc 34 アクセシビリティオブジェクトの生成 ● AXObjectCache::createFromRenderer – ノードがWAI-ARIA/HTMLのリスト関連ならばリストのオブ ジェクトを作る – ノードがWAI-ARIAのgrid関連ならばgridのオブジェクトを作る – rendererのboxの種類をみてオブジェクトを作る ● 表、プログレスバー、メーター、スライダー – 通常のオブジェクトを作る
35.
© GNOME Project,
@Takenspc 35 アクセシビリティオブジェクトの「役割」 ● AXRenderObject::determineAccessibleRole – WAI-ARIAのrole属性値を見て判定する – ノードの種類やrendererのboxの種類を見て判定するコード が並ぶ
36.
© GNOME Project,
@Takenspc 36 子孫オブジェクトの生成 ● AXObject::children const AXObject::AccessibilityChildrenVector& AXObject::children() { updateChildrenIfNecessary(); return m_children; } void AXObject::updateChildrenIfNecessary() { if (!hasChildren()) addChildren(); }
37.
© GNOME Project,
@Takenspc 37 子孫オブジェクトの生成 ● AXRenderObject::addChildren void AXRenderObject::addChildren() { (略) for (RefPtr<AXObject> obj = firstChild(); obj; obj = obj->nextSibling()) addChild(obj.get()); (略) }
38.
© GNOME Project,
@Takenspc 38 子孫オブジェクトの生成 ● AXRenderObject::nextSibling – Case 1: node is a block and has an inline continuation. – Case 2: Anonymous block parent of the start of a continuation – Case 3: node has an actual next sibling – Case 4: node is an inline with a continuation. – Case 5: node has no next sibling, and its parent is an inline with a continuation. ● Case 5a: continuation is a block ● Case 5b: continuation is an inline 隣接RenderObjectを取りに行く
39.
© GNOME Project,
@Takenspc 39 小まとめ ● アクセシビリティオブジェクトを作るには – セマンティクスに関する情報 – レイアウトに関する情報 の両方が必要 ● DOMツリーとレンダーツリーの情報を組み合わせて 作る
40.
© GNOME Project,
@Takenspc 40 「HTML5対応」とは何か
41.
© GNOME Project,
@Takenspc 41 「HTML5対応」 ● 「HTML5対応」には様々な側面がある ● アクセシビリティAPIにおける対応も1つの側面
42.
© GNOME Project,
@Takenspc 42 「HTML5対応」していないブラウザー ● HTML5のセマンティクスをアクセシビリティオブ ジェクトにマッピングしない <div> <main> AXRole: AXGroup AXSubrole: なし アクセシビリティオブジェクトの例はOS X Accessibility Protocol HTML AXRole: AXGroup AXSubrole: なし アクセシビリティオブジェクト
43.
© GNOME Project,
@Takenspc 43 「HTML5対応」しているブラウザー ● HTML5のセマンティクスをアクセシビリティオブ ジェクトにマッピングする <div> <main> AXRole: AXGroup AXSubrole: AXLandmarkMain アクセシビリティオブジェクトの例はOS X Accessibility Protocol HTML AXRole: AXGroup AXSubrole: なし アクセシビリティオブジェクト
44.
© GNOME Project,
@Takenspc 44 HTML to Platform Accessibility APIs Implementation Guide HTML to Platform Accessibility APIs Implementation Guide http://www.w3.org/TR/html-aapi/
45.
© GNOME Project,
@Takenspc 45 HTML to Platform Accessibility APIs Implementation Guide HTML to Platform Accessibility APIs Implementation Guide http://www.w3.org/TR/html-aapi/
46.
© GNOME Project,
@Takenspc 46 実装状況 HTML5 accessibility - work in progress March 2014 http://html5accessibility.com/
47.
© GNOME Project,
@Takenspc 47 実装状況 aria-html mapping implementation status http://stevefaulkner.github.io/html-mapping-tests/
48.
© GNOME Project,
@Takenspc 48 アクセシビリティオブジェクトの調査 ● コンテンツからはアクセスできない ● ツールを使って調査可能
49.
© GNOME Project,
@Takenspc 49 調査ツール ● プラットフォームのアクセシビリティオブジェクト – inspect、accprobe、aViewer(Windows) – Accessibility Inspector(OS X) ● ブラウザーの内部的なアクセシビリティオブジェクト – DOM Inspector(Gecko) ● WebKit Accessibility Node Inspector(WebCore)
50.
© GNOME Project,
@Takenspc 50 ツールによる調査対象の違い 変換 内部表現 ブラウザー 支援 技術 DOMツリー レンダリング ツリー アクセシビリティ ツリー アクセシビリティ ツリー 支援技術 プラットフォーム固有
51.
© GNOME Project,
@Takenspc 51 aViewer Accessibility Viewer (aViewer) | The Paciello Group - Your Accessibility Partner http://www.paciellogroup.com/resources/aviewer
52.
© GNOME Project,
@Takenspc 52 DOM Inspector Alex's blog: DOM Inspector as accessibility tool http://asurkov.blogspot.jp/2012/02/dom-inspector-as-accessibility-tool.html
53.
© GNOME Project,
@Takenspc 53 期待と違う結果が得られる場合 ● そもそも対応していない場合 ● レンダーツリーが影響している場合 ● フラット化が影響している場合 レンダリングツリーの影響はAccessibility and the Power of CSS: Disparities between Ideals and Realityな どを参照
54.
© GNOME Project,
@Takenspc 54 フラット化 ● ブラウザーは重要と判断したノードに対してだけアク セシビリティオブジェクトを作る/支援技術に見せる ● 「重要」かどうかの判断はブラウザー依存 – 開発者やユーザーの期待と違う場合
55.
© GNOME Project,
@Takenspc 55 AXGroupdiv フラット化しない場合 div h1 Block Block Block AXGroup AXHeading DOMツリー レンダリングツリー アクセシビリティツリー
56.
© GNOME Project,
@Takenspc 56 フラット化する場合 div div h1 Block Block Block AXHeading DOMツリー レンダリングツリー アクセシビリティツリー
57.
© GNOME Project,
@Takenspc 57 HTML5では… div main h1 Block Block Block AXGroup AXHeading DOMツリー レンダリングツリー アクセシビリティツリー
58.
© GNOME Project,
@Takenspc 58 WebKitのバグ Block Block Block AXHeading DOMツリー レンダリングツリー アクセシビリティツリー div main h1
59.
© GNOME Project,
@Takenspc 59 WebKitのバグ ● AccessibilityRenderObject::computeAccessibilityI sIgnoredのHTML5への対応が甘い bool AccessibilityRenderObject::computeAccessibilityIsIgnored() const { (略) // By default, objects should be ignored so that the AX hierarchy is not // filled with unnecessary items. return true; }
60.
© GNOME Project,
@Takenspc 60 お前、文句言うだけかよ… ● ごめんなさいごめんなさい
61.
© GNOME Project,
@Takenspc 61 小まとめ ● ブラウザーにはHTML5のセマンティクスをアクセシ ビリティオブジェクトにマッピングする責任
62.
© GNOME Project,
@Takenspc 62 まとめ ● ブラウザーの「HTML5対応」にはアクセシビリティ APIの側面を含めて考える必要 ● ブラウザーにもバグはあるため、温かい目と温かいテ ストと温かいパッチがあるといいなあ
63.
© GNOME Project,
@Takenspc 63 ご清聴ありがとうございました!
Download