Files
eepp/docs/articles
Martín Lucas Golini 1dd0870187 Harden accessibility review fixes and make macOS de-dup linear
macOS:
- Check each notification against a hash set of (event, element,
  related element) instead of scanning the whole pending queue. The
  ordered queue still drives delivery, so a burst of distinct events
  (e.g. 10,000 label changes) stays linear. Created/Destroyed are never
  de-duplicated.
- Track the pending focus change by its index instead of scanning for it.

Core:
- SceneManager::update: also bound the loop by the live scene count, so
  a scene removed during the pass can't cause an out-of-range read.
- Accessibility setters (role, label, description, hidden) return early
  on unchanged values. Re-applying CSS no longer allocates the
  properties block or notifies clients.

API cleanup:
- Remove AccessibilityRelation, AccessibilityRelationInfo and
  AccessibilityNodeInfo::relations. Nothing populated them. Remove the
  inspector row and the macOS linked-elements attribute that read them.
  AT-SPI GetRelationSet still answers with an empty set.
- Drop unused includes in uiroot.cpp and accessibility.hpp.

Docs:
- Architecture guide: UIA and macOS queue events until update(); AT-SPI
  emits right away except for per-frame text diffs. Describe each
  backend's per-frame batching, including the macOS de-dup.

Tests:
- Add UnchangedAccessibilityPropertiesStaySilent.
2026-10-09 10:47:43 -03:00
..

eepp articles

Use this page to find the guide for the task you are doing. The articles explain eepp's supported behavior; class headers and current source code remain the reference for API details.

Task Start here Follow up with
Build a first UI with XML and CSS UI introduction Application UI authoring
Create or change an application screen Application UI authoring Native layout reference, CSS for application UI
Look up a CSS property, selector, or value CSS specification CSS for application UI when styling native widgets
Render HTML or Markdown content HTML compatibility layer CSS specification for supported properties and values
Preview and edit native XML/CSS layouts UI editor Application UI authoring, Runtime UI inspector
Inspect or automate a running UI Runtime UI inspector Application UI authoring for a layout debugging workflow
Bind application data or commands to widgets UI data binding Application UI authoring for screen structure
Make native widgets accessible UI accessibility Application UI authoring for screen structure
Work on the accessibility implementation UI accessibility architecture UI accessibility for the application-facing behavior
Add an interactive chart UI charts Application UI authoring for placement and sizing
Work on eterm Kitty support Keyboard protocol, graphics protocol The corresponding src/modules/eterm/ implementation and tests

Native application widgets and HTML documents have different layout behavior. Start with application UI authoring for toolbars, dialogs, forms, and editor windows; start with HTML compatibility for UIWebView and UIMarkdownView.