Ir ao conteúdo
SEED engenharia

Componentes

Histórico da §60 — seed-componentes.md

históricoseed-componentes.md v2.00 · §h60seção 125 de 18460-historico.md · MD5 8d40624f

Título completo no canon: Histórico da seção §60 — Escolha segmentada e múltipla (não é regra)

Base (3 rodadas, 2026-08-16). E o achado da R1 é uma DIVERGÊNCIA DE CANON. Cinco fontes de peso dão quatro semânticas diferentes para o mesmo componente: (a) o Primer diz explicitamente para não tratar como radiogroup — radiogroup requer um botão de salvar —, usa botões com Tab entre eles e setas que não movem foco; (b) o useUI manda role="radiogroup" + role="radio" + aria-checked, com um único tab stop e setas movendo dentro — "o grupo é um radiogroup, não um tablist: não há painéis aqui, e prometer painéis enganaria a tecnologia assistiva"; (c) o Workday usa toggle button com estado pressionado; (d) o eBay usa botões comuns no tab order com aria-current, avisando que segmented buttons não são substitutos de abas e não operam como abas. O React Aria confirma a fronteira útil: se a escolha troca a vista do mesmo conteúdo, use grupo de alternância ou radiogroup; se troca o conteúdo, use abas.

Placar: 137 PASS · 0 FAIL · 0 [n/a]. É o único artefato do acervo em que nenhum contrato sai [n/a] — o que é o próprio critério de uma bancada estar completa.

Arquivo PASS FAIL [n/a] O que os [n/a] querem dizer
tela-painel.html 16 9 5 não tem chip removível — contrato declarado inaplicável, não pulado
tela-lista.html 20 7 3 não tem fileira de chips
tela-tabela.html 8 6 4 não tem controle segmentado
tela-detalhe.html 8 0 9 só tem interruptor; único arquivo limpo
Agregado 52 22 21 + 15 medidas
Arquivo O que mudou
validacao/painel-template.html Os QUATRO grupos viram radiogroup; um helper de roving (marcar + rovingTeclado) substitui três mecanismos; @media (forced-colors: active); anel de foco do [role=radio]; lenteAtual() passa a ler aria-checked
validacao/gen-painel.py Selo do preview v0.10 → v0.11
validacao/suite-painel.mjs PN6-01 superseded por 6 guardas · PN6-02/AC-01 com o seletor novo · PN6-03 (forced-colors)
validacao/tela-tabela-template.html .chip .x{position:relative} + ::before centrado · "+N" com TETO_CHIPS declarado · anúncio com contagem · "Limpar" com piso de 2
validacao/tela-lista-template.html X da condição a 44px com dono posicionado · segmento do operador a 44px · @media (forced-colors) · anúncio com contagem
validacao/gen-tela-lista.py Nome do radiogroup ganha "— aplica na hora" (SG4) · selo 0.1 → 0.2
validacao/gen-tela-tabela.py Selo 0.1 → 0.2
validacao/suite-escolha.mjs Guarda SG2/SG1 prova exclusividade por clique · SG5 e SG6 revistos · SG6-b · passadas extra por chave

Cinco camadas, depois do conserto: suite-escolha 88 · 0 · 21 [n/a] (4 arquétipos) · suite-painel 146 · 0 · contraste-painel 78 · 0 · suite-container 66 · 0 (2 telas). Falta o gate visual do Rafael — a única camada que mede se o controle é OPERÁVEL, e não só conforme.

Gate pendente: os previews mudaram depois do gate da SG-P8 — tela-painel v0.14, tela-lista v0.3, banco-escolha v0.2. As mudanças foram autorizadas (SG-P9 e SG-P10), mas autorização não é verificação: o olho ainda não viu o resultado montado. Fica como conferência de abertura da próxima sessão, não como pendência do §60.

Atualização 2026-08-16: a banco-escolha está hoje na v0.4 — barra de controles fixa (BT1), seletor de largura (BT2) e conserto da contagem no tema escuro, que media 1,00 e passou a medir 4,60 / 7,39. O re-gate destas versões é a BT-P1, no §64.6, para não haver duas listas disputando a mesma pendência.

# Pendência Estado Nota
SG-P1 Auditar os consumidores existentes ✅ FECHADA 6 controles em 4 arquivos
SG-P2 Bancada banco-escolha.html ✅ FECHADA 137 · 0 · 0 — SG7 e SG14 provados
SG-P3 Excedente em tela estreita ✅ RESPONDIDA por medição Não há excedente: quebra em linhas mantendo 62×44px
SG-P4 Converter as lentes do §48 ✅ FECHADA 8 tab stops → 1
SG-P5 Converter escala, gesto e modo do mapa ✅ FECHADA um helper de roving para os quatro
SG-P6 Revisar SG5 e SG6 ✅ FECHADA SG5 cede com número; SG6 não cede — vira SG6-b
SG-P7 Alvos, anúncios, teto e piso dos removíveis ✅ FECHADA 24→44px · 32→44px · "+N" · contagem · piso de 2
SG-P8 Gate visual dos três previews ✅ FECHADA "verificado, tudo ok"

Gate pendente: os previews mudaram depois do gate da SG-P8 — tela-painel v0.14, tela-lista v0.3, banco-escolha v0.2. As mudanças foram autorizadas (SG-P9 e SG-P10), mas autorização não é verificação: o olho ainda não viu o resultado montado. Fica como conferência de abertura da próxima sessão, não como pendência do §60.

Atualização 2026-08-16: a banco-escolha está hoje na v0.4 — barra de controles fixa (BT1), seletor de largura (BT2) e conserto da contagem no tema escuro, que media 1,00 e passou a medir 4,60 / 7,39. O re-gate destas versões é a BT-P1, no §64.6, para não haver duas listas disputando a mesma pendência.

# Pendência Estado Nota
SG-P1 Auditar os consumidores existentes ✅ FECHADA 6 controles em 4 arquivos
SG-P2 Bancada banco-escolha.html ✅ FECHADA 137 · 0 · 0 — SG7 e SG14 provados
SG-P3 Excedente em tela estreita ✅ RESPONDIDA por medição Não há excedente: quebra em linhas mantendo 62×44px
SG-P4 Converter as lentes do §48 ✅ FECHADA 8 tab stops → 1
SG-P5 Converter escala, gesto e modo do mapa ✅ FECHADA um helper de roving para os quatro
SG-P6 Revisar SG5 e SG6 ✅ FECHADA SG5 cede com número; SG6 não cede — vira SG6-b
SG-P7 Alvos, anúncios, teto e piso dos removíveis ✅ FECHADA 24→44px · 32→44px · "+N" · contagem · piso de 2
SG-P8 Gate visual dos três previews ✅ FECHADA "verificado, tudo ok"
SG-P9 RAIO do segmentado ✅ FECHADA "escolho reto" — 6px. A pílula fica na bancada marcada como superseded, porque decisão sem a evidência ao lado vira folclore em três meses
SG-P10 ANATOMIA do grupo: fronteira por segmento ou fronteira por grupo ABERTA — única do §60 Descoberta ao aplicar a SG-P9: raio e altura iguais, estrutura diferente. O painel desenha oito botões com borda própria; a bancada desenha um contêiner com segmentos sem borda. Decisão de gate — altera pixel aprovado, e nenhuma guarda existente mede "isto lê como um controle ou como oito?"
Esc