Skip to content

[do not review] Use select for text visualizer format picker#17787

Closed
adamint wants to merge 1 commit into
microsoft:mainfrom
adamint:adamint/a11y-17498
Closed

[do not review] Use select for text visualizer format picker#17787
adamint wants to merge 1 commit into
microsoft:mainfrom
adamint:adamint/a11y-17498

Conversation

@adamint
Copy link
Copy Markdown
Member

@adamint adamint commented Jun 1, 2026

Description

Fixes #17498

The Text Visualizer dialog now uses a FluentSelect for the format picker instead of a menu-style button. This gives the format picker standard keyboard selection behavior while preserving the available/disabled format options, fixed-format hiding, and user-selected format across parent re-renders.

User-facing usage

The Select format control now renders as a select/listbox control with options:

Unformatted
Markdown
JSON (disabled when unavailable)
XML (disabled when unavailable)

Annotated evidence captured the before state as a Select format button and the after state as a fluent-select with aria-label="Select format" and keyboard-accessible options.

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 1, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17787

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17787"

@adamint
Copy link
Copy Markdown
Member Author

adamint commented Jun 1, 2026

Uploaded annotated evidence artifacts here: https://github.com/adamint/aspire/tree/a11y-artifacts-20260601042635/17498

Most useful files:

The before capture shows Select format as a button/menu-style control. The after capture shows a fluent-select with aria-label=\"Select format\" and keyboard-accessible options.

Draft fix PR: #17787

@adamint
Copy link
Copy Markdown
Member Author

adamint commented Jun 2, 2026

I verified this in a real browser with Playwright against main and this PR. Repro host was the dashboard mock app with TestResource plus a project path so the text visualizer action is available.

Steps: open the resource text visualizer and inspect the format picker. On main, the picker rendered as a button labeled Select format. On this PR, it renders as one fluent-select with accessible label Select format.

Proof:

{"pr":"17787","phase":"base","button":"Select format","selectCount":0}
{"pr":"17787","phase":"pr","selectCount":1,"selectTag":"FLUENT-SELECT","aria":"Select format"}

@adamint
Copy link
Copy Markdown
Member Author

adamint commented Jun 2, 2026

Adding the visual proof too; the earlier verification comment had the browser details but the proof was too JSON-heavy.

I used Chromium against seeded dashboard mock host with TestResource / TestResource child. Steps: opened the text visualizer from a resource row and inspected the format picker controls in the dialog.

main / before: Format controls: FLUENT-BUTTON: Select format; FLUENT-BUTTON: Close; FLUENT-BUTTON: Copy to clipboard

this PR / after: Format controls: FLUENT-SELECT: Select format; FLUENT-BUTTON: Close; FLUENT-BUTTON: Copy to clipboard

MP4 proof, not webm, with visible keyboard/mouse/focus trace overlay: https://raw.githubusercontent.com/adamint/aspire/cd33e79ec249a7354240cc851b921502ada33d1a/proof/a11y/17787/pr-17787-visual-proof.mp4

Contact sheet with the before/after screenshots: https://raw.githubusercontent.com/adamint/aspire/cd33e79ec249a7354240cc851b921502ada33d1a/proof/a11y/17787/pr-17787-contact-sheet.png

before/after accessibility proof for PR #17787

@adamint adamint changed the title Use select for text visualizer format picker [do not review] Use select for text visualizer format picker Jun 2, 2026
@adamint
Copy link
Copy Markdown
Member Author

adamint commented Jun 4, 2026

Condensed into #17929 to keep the dialog/control a11y changes together. Closing this smaller draft.

@adamint adamint closed this Jun 4, 2026
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 13.5 milestone Jun 4, 2026
@adamint adamint self-assigned this Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Select format" dropdown list items are not accessible using keyboard:A11y_Aspire Dashboard_Resources_Keyboard

1 participant