button, checkbox: Add RoleOverride; and ability to specify Presentational (#2644)
## Description This extends `Input`'s existing `role` override to `Button` and `Checkbox`, and lets all three take `RoleOverride::Presentational` — the HTML `role="presentation"` or `role="none"` analog where the component instance emits no `AccessKit`/etc node of its own. This solves uses that annotate a wrapping element as the accessible control (a labelled row with an embedded remove button, a labelled field wrapping an input) which otherwise present two nodes per control to assistive technology. ## How to Test Override a role and navigate with a screen reader or similar assistive technology. ## Break Changes This should not break any existing uses, as `role: impl Into<Option<Role>>` will still accept any concrete `Role` passed to an existing `Input`'s `.role(r)`. It's unlikely but theoretically possible that `.role(x.into())` has been used by some consuming app, which would become ambiguous. ## Checklist - [x] I have read the [CONTRIBUTING](../CONTRIBUTING.md) document and followed the guidelines. - [x] Reviewed the changes in this PR and confirmed AI generated code (If any) is accurate. - [ ] ~Passed `cargo run` for story tests related to the changes.~ **Not needed.** - [ ] ~Tested macOS, Windows and Linux platforms performance (if the change is platform-specific)~ **Only tested on macOS.**
M
Mike Marcacci committed
3c2769e99bf45f66de4b42fed912f5c71f09f58a
Parent: 9a4a347
Committed by GitHub <noreply@github.com>
on 8/12/2026, 1:55:07 AM