Contexto
Os apps apps/patient e apps/acs seguem uma linguagem visual dark, de alto contraste e baixo ruído (ver spec/ui_design.md e os protótipos em spec/ui_acs/ e spec/ui_paciente/). O PRD já define uma baseline formal de acessibilidade em WCAG 2.1 Nível AA (seção 4.3 de spec/PRD_system.md), incluindo contraste mínimo, alvos de toque (48x48 dp, 60x60 dp no botão de pânico) e rótulos semânticos para leitores de tela. Hoje só existem validações automatizadas pontuais nesse sentido — ex. apps/acs/test/login_flow_test.dart e apps/patient/test/patient_app_mvp_test.dart checam rótulo semântico e área mínima de toque em alguns fluxos — mas não existe ainda uma avaliação estruturada de UI/UX e acessibilidade cobrindo os apps como um todo.
Objetivo
@sarahw3b, pedimos que você analise a UI/UX dos dois aplicativos (paciente e ACS), com foco especial em acessibilidade, usando UXtweak (testes de usabilidade / pesquisa com usuários, ex. testes de tarefa e first-click nos fluxos críticos como o botão de emergência e o dashboard de priorização) combinado com ferramentas de auditoria de acessibilidade mais técnicas — por exemplo:
- Flutter Accessibility Scanner / DevTools (inspeção de árvore semântica,
Semantics widgets)
- Android Accessibility Scanner (para
apps/acs e apps/patient em dispositivo/emulador Android)
- Verificadores de contraste (ex. WebAIM Contrast Checker) aplicados às cores definidas em
*_theme.dart
- Leitores de tela nativos (TalkBack/VoiceOver) para validar a navegação real dos fluxos críticos
Escopo sugerido
- Contraste e uso de cor:
apps/acs/lib/app/acs_theme.dart e apps/patient/lib/app/patient_theme.dart — validar razão de contraste ≥ 4.5:1 (texto) e ≥ 3:1 (elementos não textuais), e confirmar que vermelho/amarelo/verde (sinal clínico de risco, ver CLAUDE.md) nunca são o único indicador — sempre acompanhados de texto/ícone para quem não distingue cor.
- Alvos de toque: validar 48x48 dp nos botões principais e 60x60 dp no botão de emergência/pânico em
apps/patient/lib/app/app.dart e apps/acs/lib/app/app.dart, além dos fluxos ainda não cobertos pelos testes existentes.
- Rótulos semânticos e navegação por leitor de tela: cobertura de
Semantics/labels em todos os fluxos (login, triagem, alerta de urgência, dashboard de priorização, registro de visita), não só os já testados.
- Foco visível: indicador de foco em campos interativos (critério 2.4.7 do WCAG, citado no PRD).
- Usabilidade geral: fricção nos fluxos críticos (alerta de urgência do paciente, priorização/registro de visita do ACS) — aqui é onde o UXtweak entra, com testes de tarefa/usabilidade remota.
Entregável esperado
Um relatório (sugestão: novo documento em spec/, ex. spec/ux_accessibility_assessment.md) que:
- Compare os achados com a baseline WCAG 2.1 AA já definida na seção 4.3 do PRD (tabela de critérios).
- Traga evidências das ferramentas usadas (prints, links de sessão do UXtweak quando aplicável, resultado do scanner de acessibilidade).
- Priorize os achados e sugira ajustes concretos de UI quando fizer sentido.
Como contribuir
- Entregue via Pull Request (documento novo em
spec/ e, se for mexer em código de UI, os ajustes junto), em vez de só comentar aqui.
- Boas práticas de Git:
- Crie uma branch dedicada (ex.
docs/ux-accessibility-assessment), sem commitar direto em main.
- Commits pequenos e atômicos, com mensagens descritivas — o repositório segue o padrão conventional commits (
feat:, fix:, docs:, test:; ver git log para exemplos).
- Referencie esta issue no PR (ex.
Closes #<número>).
- Rode
flutter analyze e flutter test nos apps tocados antes de abrir o PR (a CI roda os dois automaticamente, mas vale conferir localmente).
- Evite commitar artefatos gerados (
.dart_tool/, build/) — já estão no .gitignore.
Referências
Contexto
Os apps
apps/patienteapps/acsseguem uma linguagem visual dark, de alto contraste e baixo ruído (verspec/ui_design.mde os protótipos emspec/ui_acs/espec/ui_paciente/). O PRD já define uma baseline formal de acessibilidade em WCAG 2.1 Nível AA (seção 4.3 despec/PRD_system.md), incluindo contraste mínimo, alvos de toque (48x48 dp, 60x60 dp no botão de pânico) e rótulos semânticos para leitores de tela. Hoje só existem validações automatizadas pontuais nesse sentido — ex.apps/acs/test/login_flow_test.darteapps/patient/test/patient_app_mvp_test.dartchecam rótulo semântico e área mínima de toque em alguns fluxos — mas não existe ainda uma avaliação estruturada de UI/UX e acessibilidade cobrindo os apps como um todo.Objetivo
@sarahw3b, pedimos que você analise a UI/UX dos dois aplicativos (paciente e ACS), com foco especial em acessibilidade, usando UXtweak (testes de usabilidade / pesquisa com usuários, ex. testes de tarefa e first-click nos fluxos críticos como o botão de emergência e o dashboard de priorização) combinado com ferramentas de auditoria de acessibilidade mais técnicas — por exemplo:
Semanticswidgets)apps/acseapps/patientem dispositivo/emulador Android)*_theme.dartEscopo sugerido
apps/acs/lib/app/acs_theme.darteapps/patient/lib/app/patient_theme.dart— validar razão de contraste ≥ 4.5:1 (texto) e ≥ 3:1 (elementos não textuais), e confirmar que vermelho/amarelo/verde (sinal clínico de risco, verCLAUDE.md) nunca são o único indicador — sempre acompanhados de texto/ícone para quem não distingue cor.apps/patient/lib/app/app.darteapps/acs/lib/app/app.dart, além dos fluxos ainda não cobertos pelos testes existentes.Semantics/labels em todos os fluxos (login, triagem, alerta de urgência, dashboard de priorização, registro de visita), não só os já testados.Entregável esperado
Um relatório (sugestão: novo documento em
spec/, ex.spec/ux_accessibility_assessment.md) que:Como contribuir
spec/e, se for mexer em código de UI, os ajustes junto), em vez de só comentar aqui.docs/ux-accessibility-assessment), sem commitar direto emmain.feat:,fix:,docs:,test:; vergit logpara exemplos).Closes #<número>).flutter analyzeeflutter testnos apps tocados antes de abrir o PR (a CI roda os dois automaticamente, mas vale conferir localmente)..dart_tool/,build/) — já estão no.gitignore.Referências
spec/ui_design.md— linguagem visualspec/PRD_system.md— seção 4.3, baseline WCAG 2.1 AAspec/test_plan.md— seção 3, estratégia de acessibilidade automatizadaspec/ui_acs/espec/ui_paciente/— protótipos de referênciaapps/acs/test/login_flow_test.dart,apps/patient/test/patient_app_mvp_test.dart— validações automatizadas já existentes