Decorative by default
Backgrounds are rendered aria-hidden. Put real text on top of them, never inside. If a surface carries meaning, label it yourself with an aria-label on its parent.
Images keep their alt
DitherImage leaves the img and its alt in the DOM. Screen readers announce the alt text whether or not the shader starts, and with JavaScript off the original photo shows.
Reduced motion
With prefers-reduced-motion: reduce, ordered surfaces draw one frame at stillTime and stop. Paper-backed components (Dither and DitherImage) use their frame setting with playback stopped. The components also respond when the OS setting changes while the page is open.
Without WebGL
If WebGL2 is unavailable, ordered surfaces show a static palette gradient. Dither shows a gradient between its background and foreground colours. DitherImage keeps the full-size plain img. These fallbacks also apply when a WebGL context is lost. Backgrounds remain decorative.