Skip to content

Add UI accessibility properties, keyboard shortcuts, and macOS native menu; standardize emulator display name#178

Merged
highbyte merged 4 commits intomasterfrom
feature/accessibility-elements
Apr 18, 2026
Merged

Add UI accessibility properties, keyboard shortcuts, and macOS native menu; standardize emulator display name#178
highbyte merged 4 commits intomasterfrom
feature/accessibility-elements

Conversation

@highbyte
Copy link
Copy Markdown
Owner

@highbyte highbyte commented Apr 18, 2026

Accessibility / automation properties

Added AutomationProperties.AutomationId and AutomationProperties.Name to all key Avalonia UI elements (buttons, combo boxes, text blocks, panels, user controls across main view, C64 menu, monitor, script editor, etc.). Makes the app fully addressable by accessibility tools and AI automation agents (e.g. peekaboo).

Keyboard shortcuts & macOS native menu

  • Added ISystemMenuContributor interface — each system's menu ViewModel can supply both macOS native menu items and keyboard bindings from a single place, without code-behind glue.
  • C64MenuViewModel now implements ISystemMenuContributor, exposing reactive commands for toggling C64 UI sections (Disk, Load/Save, Config) and joystick controls.
  • macOS: shortcuts are wired up as a NativeMenu on the Application, appearing in the OS-level menu bar and exposed via the macOS Accessibility API (AXMenuItem) — self-describing and discoverable by automation.
  • Windows/Linux: shortcuts are registered as KeyBindings directly on the main window (native menu would render as unwanted in-window chrome on these platforms).
  • New doc: APPS_AVALONIA_AUTOMATION.md — covers how to use peekaboo and AppleScript to automate the desktop app.

Standardize emulator display name

Replaces all inconsistent variants (DotNet6502 Emulator, DotNet-6502 Emulator, Highbyte.DotNet6502 emulator, DotNet 6502 emulator) with DotNet 6502 Emulator across UI, source, docs, macOS bundle, Homebrew cask, and Scoop manifest. Release workflow now reads the .app bundle name directly from the release zip when updating the Homebrew cask, making publish.sh the single source of truth.

@sonarqubecloud
Copy link
Copy Markdown

@highbyte highbyte changed the title Feature/accessibility elements Add UI accessibility properties, keyboard shortcuts, and macOS native menu; standardize emulator display name Apr 18, 2026
@highbyte highbyte marked this pull request as ready for review April 18, 2026 21:59
@highbyte highbyte merged commit a5aa4e7 into master Apr 18, 2026
6 checks passed
@highbyte highbyte deleted the feature/accessibility-elements branch April 18, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant