What Goldberry does not do today, in one place. Each line says whether the gap is deliberate, deferred or in progress, and links the record that explains it.
Goldberry is pre-release. No release tag has been cut, snapshots are published on
every push, and the first version is the 2026.1 line. The gaps below are the
ones an application developer meets first. TODO is the complete
list, entry by entry, and Status is what is built.
not scheduled is a decision.
deferred has a seam waiting for it.
in progress has code and an open end.
Screen readers. Nothing on any platform reads the UI aloud
not scheduled
The AccessKit bridge is on hold. The semantics tree stays: every widget carries a role and an accessible name, and a sweep enforces it (ADR-0440)
The rest of the baseline is built and checked: every control is reachable by
keyboard, the focus ring is real, contrast is authored to WCAG AA and tested,
hit targets are 32 pixels, reduced motion is honoured and text scales to 150%.
Four native artifacts, not six. Neither target has been built and both are a shrinking share (ADR-0041)
A web view on Wayland
not scheduled
A page is a child window placed over the widget’s box. Wayland allows neither reparenting a foreign surface nor placing a window where a widget is, so there the widget opens nothing and says why (ADR-0442)
A web view on Windows
deferred
Written against WebView2 and not yet verified on a Windows desktop
Media on Windows and on linux-aarch64
deferred
Written and untested. FFmpeg is built for linux-x64 and macos-aarch64 today; a release refuses to ship without all four (ADR-0495)
Frame evidence on three platforms
in progress
The budget is measured on one Linux machine. CI paints 300 frames while resizing on each runner and asserts no budget, because a GPU-less runner has no display somebody chose (ADR-0342, ADR-0452)
The GPU lane in CI
in progress
Composition, canvas3d and GPU video are measured on Metal and have run on Linux under X11. The lavapipe lane on CI has run and not yet reached a test (ADR-0503)
A native image on macOS and Windows
in progress
Built on every platform on a release tag. The macOS and Windows traces are not reviewed (ADR-0337)
The whitelist is opacity, background-color, border-color, color and transform. Animating a width would run layout every frame. A declaration outside the list is dropped with a warning (ADR-0067)
@keyframes and an animation controller
deferred
A perpetual loop is a function of the clock and needs no state. The controller’s subjects have not appeared (ADR-0081)
:not() and other selector functions
not scheduled
The router refuses to set :hover on a disabled widget instead, which is one choke point for every control
Variable font weights
not scheduled
A weight is a face. Inter ships 400 and 600, upright and italic, and a CSS weight resolves to the nearer face (ADR-0066, ADR-0323)
A Gradle plugin that picks the platform’s natives jar
deferred
A BOM knows versions, not platforms, and module-metadata variants cannot match a consumer that declares no operating system. An application adds the classifier jars itself (ADR-0438)
A Maven plugin for the weaver
deferred
exec-maven-plugin runs the weaver at process-classes, which is the phase for it (Model weaving)
A first release
in progress
The publishing chain reaches Central on every push. What a release waits on is a tag and FFmpeg for two targets
Some absences are the design rather than a gap, and will not change:
No hand-written platform backends and no AWT bridge. SDL3 is the
permanent desktop layer (ADR-0003).
No expressions in markup. A bind= is a dotted path. Negation, formatting
and conditionals stay in Java, where they are testable (ADR-0062).
No repaint() in an application. A value that changed asks for its own
frame (ADR-0128).
No global font or icon cache. A Fonts book and an Icons registry are
opened by the application and closed by it, because they hold native memory
(ADR-0044).
No mobile or touch profile. Desktop only, in this version.