Repository navigation
Feat: macOS title bar and screen reader checks in the gate, and a Kotlin/Native macOS cell - #63
Merged
Merged
Conversation
… told, and a Kotlin/Native macOS cell hello-awtfree's self-check on macOS walks its own accessibility elements in process (a hosted runner trusts no outside client) and fails unless the system buttons are there, the content runs under the bar, no title is drawn, the caption matches the buttons' frames, the corner radius is the measured table's, and the field and the button are found by role and name. The gate runs it with the Normal and the Simple title bar and, on macOS 26, requires Normal's buttons further in. The system AX API's answer is printed with its error code. "One executable (Kotlin/Native, macos-arm64)" links the same content (hello-awtfree/src/shared) in native-macos with the native desktop plugin against the core fork's macosArm64 Compose and runs the same gate. The core Compose cache is keyed by the sources the build reads rather than by commit. FR-19.4, FR-19.7, NFR-8. Closes #62.
…-ax-checks and update CORE_EXTENDED_REF
b-re-w
marked this pull request as ready for review
October 24, 2026 02:57
…ko-awt:1.11.1-ext.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #62. Needs thisisthepy/compose-multiplatform-core-extended#148 (both macOS windows on the common chrome and accessibility API) and the scene PR (ComposeWindowHost hands its semantics to the platform) merged;
CORE_EXTENDED_REFthen moves to the mergedextendedcommit. Draft until then. It is pinned to JetBrains#148's head for now, so the chrome checks run and the screen reader check shows what is missing.GraalVM macOS cell (
hello-awtfree)contentDescription = "Your name"); the button is named by its text.HELLO_TITLE_BAR=Simpleopens the plain title bar; unset is Normal.platformChecks, macOSPlatform.kt): it asks the window in process (AppKitWindowPlatform.accessibilitySnapshot(), the objects AppKit's accessibility server answers clients from) and fails on any finding ofmacosChromeFindings(three system buttons, content under the bar, no title drawn, caption height and button room matching the buttons' frames, corner radius from the measured table) ormacosAccessibleContentFindings(anAXTextField"Your name" and anAXButton"click me"). It prints what the system's AX API answered an outside client, with the error code.check-one-executable.shon macOS requireschrome: ok (Normal)andaccessibility: ok, runs the executable again withSimple, requireschrome: ok (Simple), and on macOS 26 requires Normal's close button further in than Simple's.Kotlin/Native macOS cell (new job
One executable (Kotlin/Native, macos-arm64))extended/native-desktop/hello-awtfree-kn: the same content and text check (hello-awtfree/src/shared) innative-macos's window viaMacosWindowPlatform, linked by Gradle (Kotlin 2.4.10) withorg.thisisthepy.kotlin.native.desktopagainst the core fork'smacosArm64Compose; wrong-size frames come from the window's own present check.extended/ci/core-composekeys its cache by the trees the Compose build reads, not by commit, so movingCORE_EXTENDED_REFfor window changes reuses the built Compose.Needs a human on real hardware: VoiceOver reading and acting on both executables.