AKRIBIS GroupBrand
Sistema digital
3.4

Normas web

Proposto

Que nível de qualidade todo site cumpre?

Especificação

  1. WCAG 2.2 AA é o piso em toda superfície (critério 4). O que uma verificação estática pode ver é verificado em cada build: lang no html, um só h1 e nenhum nível de título pulado, um main e um link para pular, alt em cada imagem, nome ou aria-hidden em cada SVG em linha, texto em cada link, rótulo e autocomplete em cada controle. O foco (o anel), o tamanho de alvo (24 px) e o movimento reduzido são tarefa dos tokens de forma; o contraste é provado pelo build de cor.
  2. Endereços: cada página sob seu idioma (/es/, /en/, /pt/), cada segmento traduzido, minúsculas ASCII com hífens e barra final; a raiz redireciona por Accept-Language com o espanhol como reserva; x-default aponta para a raiz. Os endereços antigos redirecionam de forma permanente.
  3. Idiomas: lang igual ao idioma da página (es, en, pt); hreflang para os três mais x-default, absolutos, a própria página incluída; um canonical que é o endereço próprio. Números, datas e unidades com Intl no idioma da página (es-AR, pt-BR, en): vírgula decimal em espanhol e português, espaço fino antes da unidade e do %.
  4. SEO nos sites indexáveis: título de 10 a 70 caracteres, descrição de 30 a 160, og:title, og:description, og:url e og:image (a foto de perfil da marca a 1200 px salvo se a página tiver a sua), JSON-LD Organization no início com AKRIBIS Group como parentOrganization, e um sitemap com todas as páginas. A Brand é noindex enquanto é rascunho e leva tudo menos o sitemap.
  5. Orçamentos por página, sem compressão: HTML 200 kB, CSS 80 kB, JS 150 kB, fontes 260 kB, no máximo três fontes pré-carregadas; cada imagem com width e height; fontes só da Brand, nunca de um CDN de fontes; as folhas de estudo e os logotipos como arquivos, não incorporados.
  6. Consentimento: nenhum script de terceiros carrega antes do consentimento; um script de um domínio de analítica ou publicidade fica condicionado (data-consent). O padrão é nenhum: onde nada rastreia não é preciso aviso de cookies. A única analítica sem consentimento é o beacon sem cookies da Cloudflare.
  7. O verificador (brand/src/check-site.ts) roda estas regras sobre um site construído, mais os padrões da anatomia para a classe do site, lista cada infração e termina com erro; este site o roda em seus testes em cada build, com zero infrações em 175 páginas; cada site o roda antes de publicar.
  8. Não estático, ainda regra: operação por teclado de cada componente, foco visível, nada perdido com 400 % de zoom nem a 320 px, movimento parado com prefers-reduced-motion, formulários que anunciam seus erros. Conferido à mão em cada componente compartilhado quando é construído.
  9. Três regras a mais (ADR-0031, ADR-0032): pages, cada página compartilhada existe em cada idioma em seu slug; headers, o site publica em _headers a base de cabeçalhos (X-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-Frame-Options); naming, nenhuma página escreve uma grafia proibida em seu texto. O verificador roda dentro do build de cada site: a integração de @akribis/site o executa sobre dist/ e uma infração falha o build.

Para repensar

  • Verificações com navegador (axe, contraste calculado, teclado) na integração contínua, quando os sites a tiverem: hoje nenhum tem CI.
  • Imagens: formatos (AVIF, WebP), srcset e o tamanho do LCP; hoje nenhum site usa astro:assets.
  • A migração dos endereços atuais (espanhol na raiz, segmentos sem tradução) para a gramática: tabela de redirecionamentos por site.

Evidência para auditar

  • brand/standards.yaml · brand/src/check-site.ts · brand/test/site.test.ts (175 pages, 26 rules, 0 violations after the fixes this decision caused: canonical, descriptions, x-default, heading levels, inlined sheets)
  • Audit (2026-10-05): hreflang on 3 of 5 sites (one always pointing at the homes), canonical on 4, sitemap on 2, JSON-LD on 2, a skip link on 1, focus styles missing on 1, Google Fonts on 1, reCAPTCHA scripts on 2, no CI, no a11y tooling, no Intl utilities; lang tags es-AR/pt-BR on 3 sites and bare codes on 2
  • Audit: all five sites keep Spanish at the root (prefixDefaultLocale: false); only akribis_info translates section slugs, and keeps Spanish for legal and thank-you pages in every language
  • Audit: akribis_info scripts/i18n-integrity.mjs, akleia_info scripts/check-i18n-parity.mjs, solfarma_com scripts/checks.mjs (AA contrast, no font CDN, links resolve): three partial checkers
  • WCAG 2.2 (1.4.11, 2.4.11, 2.4.13, 2.5.8, 2.3.3) · llmstxt.org · schema.org Organization
  • Websites/akribis_info · audit of 2026-10-06: no skip link, no _headers, reCAPTCHA and the analytics beacon without consent, 222 inline styles, an SSR adapter for static pages, 232 accepted type errors

Entrega

  • As normas como dado (standards.json)
  • o verificador que qualquer site roda sobre seu build
  • e este site como o primeiro que as cumpre.

Decisão

Figuras

Endereços e idiomas

  • url-grammar^/[a-z0-9]+(?:/[a-z0-9-]+)*/$automático
  • html-langes, en, ptautomático
  • hreflangx-defaultautomático
  • canonicalselfautomático

Acessibilidade

  • h11automático
  • heading-orderh1 → h2 → h3automático
  • mainmainautomático
  • skip-link#mainautomático
  • img-altaltautomático
  • svg-namedrole="img" | aria-hiddenautomático
  • link-texttext | aria-labelautomático
  • controls-labelledlabelautomático
  • autocompletename, email, tel, organizationautomático
  • focus-visible--focus-ringmanual
  • target-size24 pxmanual
  • reduced-motion--duration-* → 0manual

SEO

  • title10–70automático
  • description30–160automático
  • open-graphog:title, og:description, og:image, og:urlautomático
  • structured-dataOrganizationautomático
  • sitemapsitemap.xmlautomático

Orçamentos por página, sem compressão

  • budget-html200 kBautomático
  • budget-css80 kBautomático
  • budget-js150 kBautomático
  • budget-fonts260 kBautomático
  • preloads≤ 3automático
  • img-dimensionswidth, heightautomático
  • remote-fontsfonts.googleapis.com, fonts.gstatic.com, use.typekit.netautomático

Consentimento

  • consentgoogletagmanager.com, google-analytics.com, connect.facebook.net, hotjar.com, clarity.ms, doubleclick.net, cloudflareinsights.comautomático

Páginas e cabeçalhos

  • pages/<lang>/<slug>/ · /404.htmlautomático
  • headersX-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-Frame-Optionsautomático

Nomes

  • namingSOL FARMA · Sol Farma · Sol-Farma · AKIOT · Akiot · AKRIBIS · One · AKRIBIS·One · AKRIBIS ONE · Akribis One · Parte de AKRIBISautomático

pnpm check roda o verificador sobre o site construído; uma infração falha o build. Qualquer site: node brand/src/check-site.ts dist

Os padrões como dado (ADR-0025, ADR-0031, ADR-0032): as regras que o verificador roda sobre um site construído, com seu valor, e as três que não pode ver. A integração de @akribis/site o roda após cada build de cada site, e este site após o seu: zero infrações ou não há build.