chromium/docs/accessibility/browser/figures/caching_approach.gv

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];
}