, Correçoes UX
This commit is contained in:
@@ -301,6 +301,64 @@ manual e pontual, mas é o primeiro candidato a virar download em segundo plano
|
||||
o volume crescer ou se dois operadores baixarem ao mesmo tempo. **Não** compare
|
||||
esse número com o do PDF de um veículo: são unidades diferentes (1 folha × 72).
|
||||
|
||||
## Caso 10 — Mobile: quebras visuais (varredura)
|
||||
|
||||
Roda em **todas** as telas do roteiro com `agent-browser set device "iPhone 16"`
|
||||
(393×852), logado. São três medições objetivas; anote o número, não só passou/falhou.
|
||||
|
||||
### 10a — Rolagem horizontal
|
||||
|
||||
Nenhuma tela pode ter rolagem lateral no celular (diretriz 3: nada que exija zoom).
|
||||
|
||||
```bash
|
||||
agent-browser set device "iPhone 16"
|
||||
for u in /dashboard /dashboard/operacoes "/consolidacoes?visao=lista" "/consolidacoes?visao=motoristas" /admin/romaneios /admin/romaneios/13; do
|
||||
agent-browser open "https://teste.reemtransportes.com.br$u" >/dev/null
|
||||
agent-browser eval "document.documentElement.scrollWidth+'/'+document.documentElement.clientWidth"
|
||||
done
|
||||
```
|
||||
|
||||
**PASSOU se**: os dois números são iguais (ex.: `393/393`) em todas.
|
||||
Para achar o culpado quando falhar:
|
||||
|
||||
```bash
|
||||
agent-browser eval "(()=>{const vw=document.documentElement.clientWidth; return [...document.querySelectorAll('*')].filter(e=>{const b=e.getBoundingClientRect(); return b.right>vw+2 && b.width>40 && getComputedStyle(e).position!=='fixed';}).slice(0,5).map(e=>e.tagName+'.'+String(e.className).split(' ').slice(0,2).join('.')+' right='+Math.round(e.getBoundingClientRect().right)).join(' || ');})()"
|
||||
```
|
||||
|
||||
> ⚠️ Causa recorrente: contêiner `flex` **sem `flex-wrap`** com botões que não cabem,
|
||||
> ou `<input class="flex-1">` **sem `min-w-0`** (input não encolhe abaixo da largura
|
||||
> intrínseca). Foram as duas causas de 28/08/2026.
|
||||
|
||||
### 10b — Menu inteiro alcançável
|
||||
|
||||
Todo item do menu tem que ser alcançável rolando — inclusive o **Sair**, o último.
|
||||
|
||||
```bash
|
||||
agent-browser open "https://teste.reemtransportes.com.br/dashboard"
|
||||
agent-browser snapshot -i | grep -i "menu" # pegar o ref do botão "Abrir menu"
|
||||
agent-browser click @eN
|
||||
agent-browser eval "(()=>{const nav=document.querySelector('#sidebar nav'); if(!nav) return 'NAV AUSENTE'; const ult=[...document.querySelectorAll('#sidebar a')].at(-1); return 'nav rola='+(nav.scrollHeight>nav.clientHeight)+' overflowY='+getComputedStyle(nav).overflowY+' | ultimo item: '+ult.textContent.trim()+' | fora da tela por '+Math.max(0, Math.round(ult.getBoundingClientRect().bottom-window.innerHeight))+'px';})()"
|
||||
```
|
||||
|
||||
**PASSOU se**: `overflowY=auto` e "fora da tela por 0px" (o item pode estar abaixo
|
||||
da dobra, desde que o `<nav>` role até ele).
|
||||
**FALHOU se**: `overflowY=visible` ou o último item aparece fora por N px — foi o
|
||||
bug de 28/08/2026, em que 7 itens (incluindo Sair) eram inalcançáveis no celular.
|
||||
|
||||
> O que segura isso é o `flex flex-col` no `<aside id="sidebar">`: sem ele o
|
||||
> `flex-1 overflow-y-auto` do `<nav>` não tem efeito nenhum.
|
||||
|
||||
### 10c — Alvos de toque
|
||||
|
||||
```bash
|
||||
agent-browser eval "(()=>{const p=[...document.querySelectorAll('a,button,input,select,summary')].filter(e=>{const b=e.getBoundingClientRect(); return b.height>0 && b.height<44;}); return p.length+' alvos <44px';})()"
|
||||
```
|
||||
|
||||
**Linha de base após as correções de 28/08/2026** (iPhone 16): dashboard tinha
|
||||
**63** antes do ajuste da paginação; as demais telas ficam entre 3 e 5. Um número
|
||||
que **cresce** entre execuções é regressão — vale investigar o que foi
|
||||
adicionado, não apenas registrar.
|
||||
|
||||
## Relatório final (obrigatório)
|
||||
|
||||
Terminar a execução com uma tabela e a lista de falhas:
|
||||
@@ -317,6 +375,7 @@ Terminar a execução com uma tabela e a lista de falhas:
|
||||
| 7 Notificações | … | … |
|
||||
| 8 PIN motorista | … | … |
|
||||
| 9 Performance | … | tabela de tempos |
|
||||
| 10 Mobile (10a/b/c) | … | larguras, menu, alvos |
|
||||
|
||||
Depois da tabela, listar **somente as falhas**, cada uma com: URL, o que era
|
||||
esperado, o que aconteceu (mensagem de erro/console) e o caminho do screenshot.
|
||||
|
||||
Reference in New Issue
Block a user