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

ConcernH5 in WebViewMini-program runtime (accessible primitives)
Screen-reader labelsAd-hoc per pageBuilt into components
Focus orderBreaks on modal or SPAConsistent traversal
Tap targetsOften too smallEnforced minimum
ContrastPasses desktop, fails mobileChecked at the surface
InclusionPer-page lotteryDefault 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.

Sources