The web target is a single-page HTML doc with hash-route
navigation. Each route's view tree is rendered once at build
time + once per push/pop at runtime, in the browser, via a
tiny vanilla-JS shim. The shim listens to hashchange + popstate
and swaps the host element's innerHTML to the new route's
pre-rendered HTML fragment.
render_route_host(routes) emits:
The host <div id="ui-route-host">…</div> containing the
INITIAL route's fragment.
A <script type="application/json" id="ui-route-data">…
block carrying every route's pre-rendered HTML keyed by
route id.
A <script> that wires hashchange → DOM swap.
routes is Hash(String, String) of route_id_str => prerendered_html.
initial_route is the route shown before any hash navigation.
route_change_announce_label is the aria-live announcement template
(default "Navigated to {route}") used for I-6 a11y compliance.