Operator, ChatGPT Agent, Claude Computer Use e Browser Use já fazem login e checkout no seu site — se você deixar. Checklist 2026 para seletores e ARIA.
Conteúdo5 seções
Em 2026 seu cliente pode não ser a pessoa que clicou no seu anúncio. Pode ser o agente para quem ela delegou a tarefa. O Operator reserva e compra na web aberta. O Claude Computer Use fecha trials de SaaS B2B. O ChatGPT Agent preenche formulários de governo. O Browser Use está na base do stack de automação de todo founder solo.
Cada um é um LLM com visão computacional que abre seu site em um Chromium real, olha para a tela, decide onde clicar e tenta de novo em caso de erro. Eles têm sucesso quando a página é semanticamente legível; abandonam quando não é. O gap entre "agent-friendly" e "agent-hostile" em 2026 é o mesmo gap que importou em 2010 para mobile e em 2018 para leitores de tela: deixou de ser luxo, virou um novo segmento de cliente.
Este é o checklist de auditoria de 2026. Para o lado complementar — expor seu SaaS como ferramenta direta a agentes via MCP — veja MCP + Skills tornam SaaS AI-native.
Como um agente vê sua página
Três modos de percepção, dependendo do agente:
- Visão pura (Operator base, default do Browser Use): o agente tira um screenshot e pergunta ao modelo "onde clicar para fazer X?" Coordenadas são a chave principal.
- Visão + árvore de acessibilidade (Claude Computer Use, ChatGPT Agent): o agente vê pixels E a árvore ARIA/role/label parseada. Muito mais confiável porque o modelo mira por nome.
- DOM tap (Operator mais novo, dom_mode do Browser Use): o agente lê o DOM renderizado, extrai uma representação enriquecida (seletor + role + bbox + ancestrais) e age sobre dados estruturados.
Você não escolhe o modo do visitante. Então projete para o modo 3 (o mais exigente) e os modos 1-2 herdam o benefício.
Os cinco requisitos
1. Seletores estáveis
Todo elemento interativo importante recebe um atributo data-testid ou data-agent-action. O valor sobrevive a redeploys, refresh de marca e upgrade do tailwind. Funciona:
<button data-agent-action="submit-booking" aria-label="Confirmar reserva">Confirmar</button>
<a data-agent-action="open-cart" href="/cart">Ver carrinho (3)</a>
<input data-agent-field="email" type="email" name="email" autocomplete="email" />
Não funciona:
<button class="css-1xkj4m hover:css-zz9p9o">Confirmar</button>
<a href="/cart"><svg>…</svg></a>
<div class="rounded p-2 border" contenteditable="true">…</div>
Se sua stack de CSS-in-JS emite nomes de classe em hash, o seletor do deploy-N e o do deploy-N+1 são strings diferentes. O playbook do agente (gravado contra a página da semana passada) quebra a cada redeploy. data-testid é invariante por convenção.
2. Atributos semânticos em formulários
Cada input recebe no mínimo name, id, type, autocomplete e um <label for=…> associado. Agentes treinados em milhões de formulários reconhecem esses padrões. Componentes React custom que escondem o input do DOM (padrão comum nas builds antigas do shadcn/ui em 2024) deixam o agente que lê a árvore de acessibilidade sem campo para preencher.
Date-pickers são o pior. Um <input type="date"> nativo funciona para qualquer agente. Um calendário Headless UI custom com handlers só de teclado e roles aria-grid funciona apenas para agentes que leem a árvore. Um picker JS que sequestra onKeyDown e escreve em refs do React não funciona para ninguém.
3. Sem muros de CAPTCHA em fluxos primários
Cloudflare Turnstile, hCaptcha e Google reCAPTCHA lutam contra bots — incluindo os agentes que são seus clientes. Padrão 2026:
- Login / sign-up: permita agentes (a maioria se identifica). Use challenge baseado em risco, não Turnstile geral.
- Fluxos de leitura (busca, navegação, ver produto): nunca bloqueie.
- Fluxos de escrita com dinheiro (checkout, saque): permita Turnstile em modo
passiveque deixa passar agentes identificados; só desafie tráfego suspeito. - Criação de conta: aqui é o lugar certo para um challenge humano de verdade — mas roteie Operator/Agent identificado para um fluxo separado com escopo OAuth temporário.
Bloquear tudo treina agentes a abandonar seu domínio no primeiro muro. Pior: o modelo por trás lembra — respostas futuras vão ranquear concorrentes acima.
4. Erros recuperáveis
Quando o agente envia um formulário e o servidor recusa, o erro deve ser:
- Visível no DOM como texto (não só borda CSS vermelha).
- Associado programaticamente ao campo (
aria-describedby="error-email"). - Específico o bastante para o modelo corrigir ("Email já em uso — tente fazer login" em vez de "Entrada inválida").
- Não atrás de um toast que se dissolve em 3 segundos.
Teste rodando seu formulário principal no Claude Computer Use com input deliberadamente errado. Se o agente consegue descrever o erro em inglês claro, passou. Se só re-envia o mesmo formulário, falhou.
5. Um manifesto do agente
Um well-known URL — convenção é /actions.json ou /.well-known/agent-actions — declarando suas superfícies invocáveis:
{
"version": "2026-05",
"actions": [
{
"id": "create-booking",
"url": "/book/{slug}",
"method": "form",
"fields": ["start_date", "end_date", "vehicle_id"],
"auth": "session"
},
{
"id": "lookup-rate",
"url": "/api/v1/rates",
"method": "GET",
"params": ["origin", "destination", "date"],
"auth": "api_key"
}
]
}
Esta é a ponte entre agentes que scrapeiam DOM e agentes que chamam API. ChatGPT Agent e Claude com MCP habilitado checam essa URL na primeira visita e preferem chamada de API sobre ação no navegador quando ambas existem. Mais rápido, mais confiável, menos do seu orçamento de CDN.
A auditoria de 60 segundos
Rode no seu fluxo principal. Se algum passo falhar, corrija.
- Abra o fluxo em Chromium com
--disable-blink-features=AutomationControlled. - Botão direito → Inspect → aba Accessibility. Cada elemento interativo tem Name e Role? Passa.
- Recarregue. Nomes de classe nos botões não mudaram? Passa.
- DevTools → Console. Cole
document.querySelectorAll('[data-testid], [data-agent-action]').length. Resultado ≥ contagem de botões da página? Passa. - Envie o formulário com dado deliberadamente inválido. Texto de erro visível no DOM (não só borda vermelha)? Passa.
- Visite
/actions.jsonou/.well-known/agent-actions. Retorna JSON válido? Passa.
Adaptar um fluxo até passar em todas as checagens é trabalho de frontend de algumas horas, não um projeto. Um fluxo novo construído com este checklist custa zero a mais — HTML semântico é o mesmo número de teclas que sopa de div.
O que vem com a inite.ai
A inite.ai não roda este checklist por você. Os seis passos acima acontecem no seu próprio navegador, nos seus próprios fluxos: uma varredura externa não consegue entrar na conta e preencher seus formulários como um agente faz. O que o analisador da inite.ai verifica a partir de uma URL pública é a camada em volta desses fluxos: se o robots.txt deixa os crawlers de IA entrarem, quais arquivos de identidade o site serve (llms.txt, ai.json), o schema da página inicial e a saúde técnica das páginas. Uma seção à parte, Acesso de agentes de IA, procura as portas para máquinas de que trata o passo 6: um servidor MCP que responde, uma entrada no registro MCP, um cartão de agente A2A, uma descrição OpenAPI, um catálogo de API, um índice de skills para agentes. Ela não procura /actions.json nem /.well-known/agent-actions, porque nenhum é um padrão acordado, e essa seção aparece ao lado da nota, sem entrar nela. A mesma auditoria é um servidor MCP em https://inite.ai/api/mcp/analyzer: check_identity(url) lê a política de crawlers e os arquivos de identidade na hora e de graça, analyze_site(url) inicia a auditoria completa e get_analysis(run_id) lê o resultado cerca de um minuto depois, e visibility_fixes(url) devolve as correções em ordem, com um arquivo pronto para colar quando houver. Um agente no Claude ou no Cursor pode chamá-lo de um pipeline.
A lógica é a mesma do AEO: meça uma vez, repita semanalmente, conserte o pior toda sprint. O contexto completo está no guia de AEO 2026 e o lado dos crawlers no allowlist de crawlers de IA. Tráfego de agentes em 2026 é o que tráfego mobile foi em 2012 — uma curva em que você pega carona ou observa.
Leia também: Prepare seu SaaS para agentes de navegador.
O que aconteceu quando a própria etapa de compra se mudou para o assistente e depois voltou está em o checkout com IA foi cancelado.
Fontes
- OpenAI — Computer-Using Agent — os números do CUA em WebArena e OSWorld; Zhou et al., 2023 — a baseline humana no WebArena.
- Anthropic — Claude Sonnet 4.5 — os números do Claude no OSWorld.
- WebAIM Million, 2026 — campos sem rótulo e botões vazios no milhão de home pages.
- Cloudflare — configuração de desafios — desafio por risco em vez de muro geral.
Perguntas frequentes
Quais agentes de navegador importam em 2026?
Quatro agentes de produção geram tráfego real: OpenAI Operator (tier consumer + business), ChatGPT Agent (em chat.com, substitui o antigo beta Tasks), Claude Computer Use (Claude 4.5 no console da Anthropic e via API para desenvolvedores), e Browser Use (open-source, mais de 100.000 estrelas no GitHub em outubro de 2026, default da galera indie). Todos os quatro são vision-driven — leem sua página como um humano — mas todos se beneficiam de HTML semântico e seletores estáveis. Otimize para a união, não para a interseção.
Acessibilidade (ARIA) realmente ajuda agentes de IA?
Sim — é a alavanca de maior retorno por esforço. Agentes preferem a árvore de acessibilidade ao screenshot puro porque ela é estruturada, com roles e labels. Um botão com `aria-label='Submit booking'` é clicado mais consistentemente do que o mesmo botão identificado apenas como 'retângulo azul na coordenada (480, 612)'. A varredura da WebAIM de 2026 no milhão de home pages mais populares achou um terço dos campos de formulário sem rótulo correto, então a maioria dos sites ainda tem esse trabalho pela frente.
Como detecto tráfego agêntico?
Três sinais: (1) user-agent contém 'Operator', 'ChatGPT-Agent', 'Anthropic-ComputerUse' ou 'BrowserUse' — a maioria se identifica; (2) entropia de movimento do mouse abaixo do baseline humano (agentes clicam direto, sem hover); (3) ausência de fingerprints típicos (sem write em localStorage na primeira visita, quirks de headless Chrome). Logue os três; exponha um endpoint /api/me que devolva dicas se o agente se identificar, para o client adaptar a UI.
Devo mostrar uma UI diferente para agentes?
Sim, seletivamente. O padrão é 'progressive enhancement for agents' — a UI humana continua canônica; em sessões agênticas detectadas você expõe atributos `data-agent-action` extras, serve um manifesto JSON em /actions em um well-known URL e desliga animações/skeletons que atrasam a percepção. Não bifurque a UI inteira — vira pesadelo de manutenção. Adicione dicas.
O que mais mata a conclusão de uma tarefa?
Em ordem: (1) Cloudflare Turnstile / hCaptcha no formulário principal; (2) seletores em hash de classe que mudam a cada deploy ('css-1xkj4m'); (3) inputs sem `name` ou `autocomplete`; (4) date-pickers React custom que sequestram o teclado; (5) modais sobre modais que o agente não consegue fechar; (6) erros mostrados só como borda vermelha (sem texto). Audite seus 3 principais fluxos contra essa lista semanalmente.



