SIGN IN SIGN UP

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