Analisando iframes
Como o Axe Watcher analisa o conteúdo dentro de iframes durante suas execuções de teste.
As páginas frequentemente colocam conteúdo substancial dentro de elementos <iframe>: formulários de pagamento, players de mídia, mapas incorporados, widgets de chat e ajuda, e componentes de terceiros. O Axe Watcher analisa o conteúdo de frames com a mesma origem junto com o resto da página, para que o conteúdo em frames não seja uma lacuna na sua cobertura e não precise de testes próprios.
A análise de frames não requer configuração, e o tratamento de frames do Watcher não depende da linguagem ou framework de teste que você usa: o axe-core é carregado nos frames da página, e os resultados dos frames são analisados e relatados com o estado da página que os contém.
Como os Resultados dos Frames São Reportados
Questões encontradas dentro de um frame são atribuídas ao estado da página da página que incorpora o frame, e não a um estado de página separado. No Axe Developer Hub elas aparecem junto com o restante das questões para aquele estado da página.
O que identifica uma questão como proveniente de um frame é seu seletor de elemento, que contém uma entrada por nível de aninhamento de frame seguida por um seletor para o próprio elemento. Um seletor com duas entradas aponta para um elemento dentro de um frame: a primeira entrada encontra o frame no documento pai, e a segunda encontra o elemento dentro do documento desse frame. Isso significa que um elemento reportado pode não existir no próprio HTML da página. Leia o seletor de fora para dentro para descobrir onde o elemento realmente está.
Escopo e Limitações
- Frames com a mesma origem são analisados. Uma violação dentro de um frame servido da mesma origem da página é reportada com os resultados daquela página, identificada por um seletor que nomeia o frame e então o elemento dentro dele.
- Frames com origem cruzada não são analisados a menos que você permita. O Watcher é executado dentro do navegador junto com sua aplicação, portanto, a política da mesma origem do navegador se aplica. Por padrão, o conteúdo em um frame servido de outra origem não é analisado e nenhuma violação é reportada para ele. No Watcher 4.6.0 e versões posteriores, você pode optar por cada origem com a opção
allowedOrigins, descrita abaixo. - Os frames são analisados com a página, não separadamente. O conteúdo dos frames é coberto por cada análise da página que os incorpora, então um frame cujo conteúdo muda é detectado pela análise do estado da página resultante.
- Os frames seguem a configuração em nível de página. As opções que controlam o que o Watcher analisa, como controlar suas verificações e excluir URLs, se aplicam à página como um todo, incluindo seus frames. Não há configuração separada para frames.
Analisando Frames com Origem Cruzada
O Watcher 4.6.0 adicionou a opção allowedOrigins, que permite a análise do conteúdo de frames servidos de origens que você nomeia. Defina allowedOrigins em AxeConfiguration (integrações JavaScript/TypeScript) ou chame setAllowedOrigins() em AxeWatcherOptions (integrações Java). Sua própria origem é sempre permitida, então liste apenas as origens incorporadas que você deseja cobrir:
axe: {
allowedOrigins: [ 'https://pay.example.com' ]
}Pontos que vale a pena saber antes de habilitar:
- Curingas não são suportados. Cada origem deve ser nomeada explicitamente, e uma entrada que o Watcher não puder usar é reportada como um erro em vez de ser ignorada.
- Cada origem listada pode dirigir e ler a marcação da página que a incorpora. Liste apenas origens em que você confia com o conteúdo da página sob teste.
- Cada origem que você permite adiciona o conteúdo desse frame a cada análise, o que torna a análise mais lenta. Os tempos padrão
analyzeeflushsão aumentados quando a opção é configurada. - A análise automática não pode detectar alterações feitas dentro de um frame, então um frame permitido é analisado a partir da última alteração na página de nível superior. Chame
analyze()após interagir com conteúdo dentro de um frame.
Veja a referência allowedOrigins para o formato completo de entrada e regras de validação.
Habilite melhores práticas se você depender da cobertura de frame. A regra frame-tested do axe-core é o que distingue "nenhuma questão neste frame" de "este frame nunca foi analisado": um frame que o Watcher não pôde alcançar é reportado como necessitando de revisão, e um que ele alcançou passa na regra. Como é uma regra de melhores práticas, um conjunto de regras limitado a regras WCAG a omite completamente, e um frame com origem cruzada que você não permitiu então não produz nenhum sinal de qualquer tipo.
