Skip to content

Do not reject editable text areas when AXEnabled is absent #66

Closed

Description

@iamnbutler

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.

Activity

  1. iamnbutler commented on Oct 5, 2026

    @iamnbutler
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions