You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Do not reject editable text areas when AXEnabled is absent #66
A standard editable AppKit NSTextView can omit AXEnabled. Peekaboo reports that as is_enabled=false together with axEnabledKnown=false, but Ace's action wrapper currently treats the raw Boolean as a known disabled state and refuses the control before the native action validator can run.
Found while validating #65 against a real signed AppKit form. The text area was focused, editable, and reported isValueSettable=true, but desktop_click returned “The observed element is disabled.” The existing guard also applies to whole-value edits and the new text selection tool.
Peekaboo exposes DetectedElement.knownIsEnabled for this distinction: nil means unknown; false means explicitly disabled. Use that authoritative property to reject only a known-disabled target, while retaining exact target validation and the native action-specific checks. Do not override the test control's accessibility flags or add an input fallback.
Implemented in draft #67. The signed rebuild passes, and real native validation now accepts the editable multiline text area while refusing an explicitly disabled NSButton without activating its Save callback. This fix is pending merge with #65; broader keyboard validation remains blocked by githubnext/desktop-tools#1. Tracked by githubnext/ace2#8 / #5.
Fixed by merged PR #81 on feat/github-cache. Text controls with absent AXEnabled metadata remain usable; explicitly disabled controls remain refused. No new canary has been published for this merge.
Activity
iamnbutler commentedon Oct 5, 2026
Fixed by merged PR #81 on feat/github-cache. Text controls with absent AXEnabled metadata remain usable; explicitly disabled controls remain refused. No new canary has been published for this merge.