iOS adapter
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 38/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- ios, rust
- Domínio
- accessibility, mobile-dev
Direção de pesquisa
Comece com o adaptador accesskit_ios existente e sua estrutura de adaptador existente; em seguida, revise as tarefas da Phase 3 para o test harness, a CI do simulador do iOS, os testes de integração e o texto editável. Use a aplicação Slint por meio de accesskit_winit para validar o comportamento. Está concluído quando os principais traits, propriedades, estados, alterações e notificações de texto editável estiverem cobertos e a segunda release do accesskit_ios tiver sido publicada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
This project was funded through the NGI0 Commons Fund, a fund established by NLnet. See the project page for more information.
Abstract
The aim of this project is to implement UIKit accessibility. UIKit is Apple's user interface framework powering iOS, iPadOS, tvOS, and visionOS. Once complete, this new backend will allow any user of the AccessKit library to get UI accessibility on iPhone, iPad, Apple TV, and the Apple Vision Pro without substantial change to their current implementation. The finished product will contain a generic component that can be plugged into any iOS application as well as a specialized component to support the popular winit windowing library. An existing UI toolkit written in Rust will be modified to showcase the feature.
Tasks
- Phase 1: Core iOS Adapter (#710)
- Setup the low-level adapter skeleton following existing adapters structure
- Traits, properties and states mapping for nodes
- Post simple notifications to report UI events
- Create the subclassing adapter to inject into a UIKit view
- Write unit tests and update the CI to have them run
- Document how to run the winit examples
- Publish first version of accesskit_ios on crates.IO
- Phase 2: Integrate into the Slint UI toolkit (https://github.com/slint-ui/slint/pull/12750)
- Validate the subclassing adapter through accesskit_winit with the Slint winit backend and make adjustments
- Implement text editing capability using parley and validate on desktop platforms, iOS will be validated in the next milestone
- Modify the Slint CI to ensure the accessibility tree can be seen in the simulator
- Phase 3: Integration Testing & Editable Text
- Setup a test harness
- Configure iOS simulator on GitHub CI
- Write some integration tests to cover the key features (traits, properties and states exposed, changes detected)
- Implement methods to support editable text (characters, selection), validate with a Slint application
- Post required notifications for editable text (caret/selection move, text insertion/deletion), validate with a Slint application
- Publish second version of accesskit_ios on crates.IO
- Phase 4: Finishing touches
- Process feedback from security audit
- Expose both low-level and subclassing adapters API in the C bindings
- Update the Meson build script
- Update the CI to generate pre-built packages
- Integrate into the existing SDL example to demonstrate how to use
- Publish new version of the C bindings with the new binaries for iOS
- Write a blog post about the work done
- Linguagem predominante
- Rust
- Estrelas
- 1.5k
- Forks
- 127
- Merge médio
- 16h 44min
- PRs com merge (30d)
- 12
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de AccessKit/accesskit
-
Document sub-treesAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Document `Role::ColorWell`Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 50/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 1-2 dias Facilidade para iniciantes 32/100
Mantenedores costumam responder em até 1 dia
Todas as issues de AccessKit/accesskit
Issues semelhantes
-
area/tools bug session-analysis
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 84/100
nix-community/fenix#262 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
GabrieleLozupone/kokon#41 ·
Mantenedores costumam responder em até 1 dia
-
Small glitchAbertapriority: medium
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
storytold/photocraft#9538 ·
Mantenedores costumam responder em até 1 dia
-
bug P2 rust
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia