Accessibility that breaks where you need it
Ship an H5 page and accessibility is whatever each team remembered to add: an alt tag here, a label there, a focus order that falls apart when a modal opens. Inside a WebView the gaps widen — screen readers announce nothing useful, tap targets shrink, and contrast that passed on desktop fails on a small screen. Inclusion becomes a per-page lottery.
A mini-program runtime flips the default. The components it ships are semantic and screen-reader-aware by construction, with consistent focus order, labels, and roles that travel with the program to every host.
What runtime-level accessibility actually is
The runtime provides a common set of accessible primitives: buttons, lists, forms, and media that expose roles, states, and labels to assistive technology the same way on every device. Because the runtime owns the rendering surface, it can enforce a minimum bar — readable contrast, adequate tap targets, logical focus traversal — instead of trusting each page to opt in. The standard itself is explicit: WCAG sets the bar; a runtime makes meeting it the path of least resistance.
This is not a styling bonus. It is the difference between a program that everyone can use and one that silently excludes a share of users on every release.
Where the gap shows up
| Concern | H5 in WebView | Mini-program runtime (accessible primitives) |
|---|---|---|
| Screen-reader labels | Ad-hoc per page | Built into components |
| Focus order | Breaks on modal or SPA | Consistent traversal |
| Tap targets | Often too small | Enforced minimum |
| Contrast | Passes desktop, fails mobile | Checked at the surface |
| Inclusion | Per-page lottery | Default across hosts |
The payoff is reach: a program built on accessible primitives stays usable by people with low vision, motor limits, or assistive tech, without a separate audit on every host.
Why a default beats a hope
A runtime-level accessibility bar means a developer gets inclusion for free on the components they already use, instead of retrofitting labels and focus after users complain. It also means the same program meets the same bar on every host, rather than regressing on whichever one shipped the weakest page.
How Cross Mini App applies it
Cross Mini App gives programs a runtime with accessible primitives — semantic components that expose roles, states, and labels to assistive technology the same way on every host. You build with the components; the runtime carries inclusion to every device. You stop gambling inclusion per page and start shipping it by default.
That is the difference between a program that excludes by accident and one that includes by design.