forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
How Chrome Accessibility Works, Part 2
Follow-up to: http://crrev.com/c/3094450 This section covers the multi-process browser details and introduces many of the specific classes and data structures used for Chrome accessibility. Bug: None Change-Id: I7d53929a87439d7c921f372e0aade4afd9791a7b AX-Relnotes: N/A Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3108459 Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Reviewed-by: Kevin Babbitt <kbabbitt@microsoft.com> Cr-Commit-Position: refs/heads/main@{#914001}
- Loading branch information
1 parent
b03d457
commit 5ffcc86
Showing
18 changed files
with
834 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
digraph graphname { | ||
graph [fontname = "helvetica", fontsize=11]; | ||
node [shape="box", fontname = "helvetica", fontsize=11]; | ||
edge [fontname = "helvetica", fontsize=11]; | ||
rankdir="TB"; | ||
|
||
subgraph cluster_browser { | ||
label = "Browser Process"; | ||
|
||
subgraph cluster_cache_tree { | ||
label = "Cached accessibility tree"; | ||
rankdir="TB"; | ||
|
||
root_cache [label="Root node"]; | ||
root_cache -> { button_cache, other_cache } [dir=none]; | ||
button_cache [label="Button node"]; | ||
other_cache [label="..."]; | ||
} | ||
} | ||
|
||
subgraph cluster_render { | ||
label = "Render Process"; | ||
|
||
subgraph cluster_ax_tree { | ||
label = "Accessibility tree"; | ||
rankdir="TB"; | ||
|
||
root_node [label="Root"]; | ||
root_node -> { button_node, other_node } [dir=none]; | ||
button_node [label="Button"]; | ||
other_node [label="..."]; | ||
} | ||
|
||
subgraph cluster_dom_tree { | ||
label = "DOM tree"; | ||
rankdir="TB"; | ||
|
||
root_dom_node [label="<body>"]; | ||
root_dom_node -> { button_dom_node, other_dom_node } [dir=none]; | ||
root_dom_node -> other_dom_node; | ||
button_dom_node [label="<button>"]; | ||
other_dom_node [label="..."]; | ||
} | ||
|
||
} | ||
|
||
os [label="Operating System"]; | ||
os -> root_cache [dir=both]; | ||
root_cache -> root_node [dir=back, label="Atomic updates"]; | ||
root_node -> root_dom_node [dir=both]; | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
digraph graphname { | ||
graph [fontname = "helvetica", fontsize=11]; | ||
node [shape="box", fontname = "helvetica", fontsize=11]; | ||
edge [fontname = "helvetica", fontsize=11]; | ||
rankdir="RL"; | ||
|
||
subgraph cluster_browser { | ||
label = "Browser Process"; | ||
|
||
subgraph cluster_browser_ax { | ||
label = "BrowserAccessibilityManager"; | ||
|
||
ax_tree [label="AXTree"]; | ||
} | ||
} | ||
|
||
subgraph cluster_render { | ||
label = "Render Process"; | ||
|
||
subgraph cluster_blink { | ||
label = "Blink"; | ||
|
||
dom_node [label="Node"]; | ||
dom_node -> {layout_object, ax_object}; | ||
css [label="CSS"]; | ||
css -> layout_object; | ||
layout_object [label="LayoutObject"]; | ||
layout_object -> ax_object; | ||
ax_object [label="AXObject"]; | ||
} | ||
|
||
render_ax [label="RenderAccessibilityImpl"]; | ||
ax_object -> render_ax; | ||
} | ||
|
||
render_ax -> ax_tree [label="AXTreeSerializer"]; | ||
|
||
ax_tree -> at [label="Platform\nAccessibility APIs"]; | ||
at [label="Assistive\nTechnology"]; | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
digraph graphname { | ||
graph [fontname = "helvetica", fontsize=11]; | ||
node [shape="box", fontname = "helvetica", fontsize=11]; | ||
edge [fontname = "helvetica", fontsize=11]; | ||
rankdir="RL"; | ||
|
||
subgraph cluster_renderer { | ||
label = "Sandboxed Render Process"; | ||
web_page [label="Web Page Renderer (HTML, CSS, JS)"]; | ||
} | ||
|
||
subgraph cluster_browser { | ||
label = "Browser Process"; | ||
browser_window [label="Browser Window"]; | ||
} | ||
|
||
browser_window -> web_page [label="User input events"]; | ||
web_page -> browser_window [label="Pixels"]; | ||
|
||
os [label="Operating System"]; | ||
os -> browser_window; | ||
browser_window -> os; | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
digraph graphname { | ||
graph [fontname = "helvetica", fontsize=11, compound=true]; | ||
node [shape="box", fontname = "helvetica", fontsize=11]; | ||
edge [fontname = "helvetica", fontsize=11]; | ||
rankdir="LR"; | ||
|
||
subgraph cluster_renderer1 { | ||
label = "Render Process 1"; | ||
web_page1 [label="Web Page Renderer 1"]; | ||
} | ||
|
||
subgraph cluster_renderer2 { | ||
label = "Render Process 2"; | ||
web_page2 [label="Web Page Renderer 2"]; | ||
web_page3 [label="Web Page Renderer 3"]; | ||
} | ||
|
||
subgraph cluster_renderer3 { | ||
label = "Render Process 3"; | ||
web_page4 [label="Web Page Renderer 4"]; | ||
} | ||
|
||
subgraph cluster_browser { | ||
label = "Browser Process"; | ||
|
||
subgraph cluster_window1 { | ||
label = "Browser Window"; | ||
tab1 [label="Tab 1"]; | ||
tab2 [label="Tab 2"]; | ||
} | ||
|
||
subgraph cluster_window2 { | ||
label = "Browser Window"; | ||
tab3 [label="Tab 3"]; | ||
tab4 [label="Tab 4"]; | ||
} | ||
} | ||
|
||
tab1 -> web_page1 [dir=both]; | ||
tab2 -> web_page2 [dir=both]; | ||
tab3 -> web_page3 [dir=both]; | ||
tab4 -> web_page4 [dir=both]; | ||
|
||
os [label="Operating System"]; | ||
os -> tab1 [lhead=cluster_browser, dir=both]; | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
digraph graphname { | ||
graph [fontname = "helvetica", fontsize=11, compound=true]; | ||
node [shape="box", fontname = "helvetica", fontsize=11]; | ||
edge [fontname = "helvetica", fontsize=11]; | ||
rankdir="LR"; | ||
|
||
subgraph cluster_browser { | ||
label = "Browser Process"; | ||
|
||
window [label="Browser Window"]; | ||
} | ||
|
||
subgraph cluster_tab1 { | ||
label = "Tab Process 1"; | ||
tab1 [label="Tab 1"]; | ||
} | ||
|
||
subgraph cluster_tab2 { | ||
label = "Tab Process 2"; | ||
tab2 [label="Tab 2"]; | ||
} | ||
|
||
window -> tab1 [dir=both]; | ||
window -> tab2 [dir=both]; | ||
|
||
os [label="Operating System"]; | ||
os -> window [lhead=cluster_browser, dir=both]; | ||
os -> tab1 [dir=both]; | ||
os -> tab2 [dir=both]; | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
digraph graphname { | ||
graph [fontname = "helvetica", fontsize=11]; | ||
node [shape="box", fontname = "helvetica", fontsize=11]; | ||
edge [fontname = "helvetica", fontsize=11]; | ||
rankdir="TB"; | ||
|
||
subgraph cluster_browser { | ||
label = "Browser Process"; | ||
|
||
subgraph cluster_proxy_tree { | ||
label = "Proxy accessibility tree"; | ||
rankdir="TB"; | ||
|
||
root_proxy [label="Root proxy"]; | ||
root_proxy -> { button_proxy, other_proxy } [dir=none]; | ||
button_proxy [label="Button proxy"]; | ||
other_proxy [label="..."]; | ||
} | ||
} | ||
|
||
subgraph cluster_render { | ||
label = "Render Process"; | ||
|
||
subgraph cluster_ax_tree { | ||
label = "Accessibility tree"; | ||
rankdir="TB"; | ||
|
||
root_node [label="Root"]; | ||
root_node -> { button_node, other_node } [dir=none]; | ||
button_node [label="Button"]; | ||
other_node [label="..."]; | ||
} | ||
|
||
subgraph cluster_dom_tree { | ||
label = "DOM tree"; | ||
rankdir="TB"; | ||
|
||
root_dom_node [label="<body>"]; | ||
root_dom_node -> { button_dom_node, other_dom_node } [dir=none]; | ||
root_dom_node -> other_dom_node; | ||
button_dom_node [label="<button>"]; | ||
other_dom_node [label="..."]; | ||
} | ||
|
||
} | ||
|
||
os [label="Operating System"]; | ||
os -> root_proxy [dir=both]; | ||
root_proxy -> root_node [dir=both, label="Blocking IPC"]; | ||
root_node -> root_dom_node [dir=both]; | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.