Skip to content

feat: Basic iOS adapter#710

Open
DataTriny wants to merge 16 commits intomainfrom
ios
Open

feat: Basic iOS adapter#710
DataTriny wants to merge 16 commits intomainfrom
ios

Conversation

@DataTriny
Copy link
Copy Markdown
Member

Phase 1 of #565

Implements the adapter for iOS and other Apple systems that use the UIKit runtime.

The adapter comes in two flavours: a low-level adapter suitable when the user owns the UIView and a subclassing adapter useful when integrating with third-party libraries that don't let the user manipulate the UIView, such as winit.

This first version is able to expose simple widgets like labels, buttons, checkboxes, switches, sliders... Live regions are also supported.

Necessary infrastructure is in place to run tests on a simulator, the CI is modified to take advantage of this and run the unit tests.

accesskit_winit now use the iOS subclassing adapter on appropriate targets. The examples have been modified and can be used to manually test the adapter.

The Slint toolkit is already compatible and its Gallery example can be used for further manual testing, although issues in its layout make VoiceOver refuse to focus certain widgets. Please use this branch where the AccessKit crates are patched.

Editable text is not yet implemented and focusing such a widget can confuse VoiceOver, depending on how the view is set up.

@mwcampbell
Copy link
Copy Markdown
Contributor

Do we want to clear Context::platform_focus if the node that that field refers to is destroyed?

@mwcampbell
Copy link
Copy Markdown
Contributor

@DataTriny Can you please add a comment in the winit examples explaining the reason for the announcement delay?

Copy link
Copy Markdown
Contributor

@mwcampbell mwcampbell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good, thorough implementation of phase 1. The delay isn't ideal, but the better solution, if there is one, isn't obvious, so I won't block on that.

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.

2 participants