Ficha da câmara · Edição de Setembro de 2026
Abrantes
Como foi medida. O site é uma aplicação que desenha a página como uma imagem, em vez de a escrever em texto que o browser lê. A protecção de dados e a segurança medem-se como nos outros sites. Na acessibilidade, activámos o modo que a aplicação oferece aos leitores de ecrã e medimos nele as imagens e os campos; a língua e o zoom leem-se no código da página. O contraste não se pode medir, porque o texto não tem cores definidas no código. Sem esse modo activo, um leitor de ecrã só encontra um botão escondido, com o rótulo em inglês «Enable accessibility», a que se chega à 3.ª tecla Tab; ao activá-lo, o site aparece.
www.cm-abrantes.pt Medido a 26 de Setembro de 2026
Pontuação global
58,3/100
214.º de 308 câmaras
Pontuação por frente, comparada com as médias
Acessibilidade
Se qualquer pessoa consegue usar o site, incluindo quem vê mal, usa leitor de ecrã ou só teclado.
Zoom não bloqueado
O site deixa ampliar a página?
A prova
<meta flt-viewport="" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> (em https://www.cm-abrantes.pt/)
Quem vê mal amplia a página com dois dedos no telemóvel. Se o site o bloqueia, o texto fica pequeno demais para ser lido.
Como corrigir
- Na etiqueta <meta name="viewport"> do tema, retire user-scalable=no e maximum-scale=1.
- Deixe apenas: width=device-width, initial-scale=1.
Regra: Nenhuma página da amostra impede a ampliação (meta viewport sem user-scalable=no nem maximum-scale abaixo de 2). (WCAG 2.1, 1.4.4 (AA))
Língua declarada
A página diz em que língua está escrita?
O que encontrámos
<html lang="pt">
O leitor de ecrã escolhe a pronúncia pela língua declarada. Sem ela, um texto em português pode ser lido com sotaque inglês e tornar-se incompreensível.
Regra: Todas as páginas da amostra declaram uma língua válida no elemento html. (WCAG 2.1, 3.1.1 (A))
Imagens com texto alternativo
As imagens têm uma descrição em texto?
A prova
4 em https://www.cm-abrantes.pt/; 4 em https://www.cm-abrantes.pt/#/municipio; 4 em https://www.cm-abrantes.pt/#/investir; 4 em https://www.cm-abrantes.pt/#/viver; 4 em https://www.cm-abrantes.pt/#/abrantes-digital. Ex.: <flt-semantics-img role="img" style="position: absolute; top: 0px; left: 0px; width: 1366px; height: 683px; font-size: 6px;">
Quem não vê a imagem ouve a descrição. Sem ela, o leitor de ecrã lê o nome do ficheiro, ou nada.
Como corrigir
- Em cada imagem de conteúdo, preencha o campo «texto alternativo» no gestor de conteúdos.
- Imagens puramente decorativas levam alt="" (vazio), para serem ignoradas.
Regra: Nenhuma imagem visível da amostra aparece sem atributo alt e sem outro nome acessível (title, aria-label, aria-labelledby). Imagens marcadas como decorativas não contam. (WCAG 2.1, 1.1.1 (A))
Campos de formulário com nome
Os campos dos formulários têm nome?
Não apareceu nenhum campo de formulário nas páginas da amostra. Neste tipo de site os campos só existem quando a aplicação os mostra, por isso não se pode afirmar que não haja campos sem nome.
Um campo sem rótulo é anunciado apenas como «editar texto». Quem usa leitor de ecrã não sabe o que escrever lá.
Regra: Nenhum campo visível da amostra aparece sem rótulo (label, aria-label, aria-labelledby, title) nem placeholder. (WCAG 2.1, 1.3.1, 3.3.2 e 4.1.2 (A))
Contraste de texto
O texto tem contraste suficiente com o fundo?
O site desenha o texto como imagem: não há cores de texto e de fundo definidas no código para confirmar no ecrã, que é o que este critério exige.
Texto claro sobre fundo claro não se lê ao sol, num ecrã fraco, ou com a vista cansada. A norma pede 4,5:1 para texto normal.
Regra: Nenhum texto da amostra ficou abaixo de 4,5:1 (3:1 em letra grande) com a falha confirmada nos pixéis da captura. (WCAG 2.1, 1.4.3 (AA))
Declaração de Acessibilidade
A Declaração de Acessibilidade está ligada da página inicial?
A prova
Tentámos: https://www.cm-abrantes.pt/#/acessibilidade (?); https://www.cm-abrantes.pt/#/declaracao-de-acessibilidade (?); https://www.cm-abrantes.pt/acessibilidade (404); https://www.cm-abrantes.pt/declaracao-de-acessibilidade (404)
Não encontrámos a Declaração a partir da página inicial (na inicial, no menu aberto e nas páginas de cada secção do menu) nem nos caminhos habituais. Não quer dizer que não exista.
O DL 83/2018 obriga os organismos públicos a publicar e manter actualizada a Declaração, com o estado de conformidade do site. O art. 8.º, n.º 2 pede que fique numa página com o endereço terminado em «/acessibilidade», hiperligada à página de entrada e, sempre que possível, ao rodapé de todas as páginas.
Como corrigir
- Gere a Declaração no modelo oficial em acessibilidade.gov.pt.
- Publique-a numa página do site com o endereço terminado em «/acessibilidade».
- Ligue-a a partir da página inicial e do rodapé de todas as páginas.
Regra: A página inicial tem uma ligação para a Declaração (directa, ou a um salto de uma ligação de acessibilidade ou de informação legal da inicial), e a Declaração segue o modelo do DL 83/2018 (uma página do site ou um PDF). Endereço sem «/acessibilidade», PDF em vez de página ou falta de ligação no rodapé ficam como observação e não baixam a nota. (DL 83/2018, art. 7.º e art. 8.º, n.º 2)
Selo de Usabilidade e Acessibilidade
Tem o Selo de Usabilidade e Acessibilidade em vigor?
A prova
sem registo datado de atribuição
Informativo: não entra na pontuação.
O Selo é atribuído pela ARTE e vale 12 meses. É informativo neste índice: não entra na pontuação.
Como corrigir
- Candidatar-se em selo.usabilidade.gov.pt, depois de corrigidas as falhas automáticas e manuais.
Regra: Selo com data de atribuição pública há menos de 12 meses. Informativo: não entra na pontuação. (ARTE, selo.usabilidade.gov.pt)
RGPD
Se o site respeita a escolha do visitante antes de o seguir, e se explica o que faz com os dados.
Sem cookies de rastreio antes do consentimento
Grava cookies de rastreio antes de o visitante escolher?
Sem envio de medição antes do consentimento
Envia dados a serviços de medição antes do consentimento?
Cada envio de medição transmite o endereço e a página visitada a um terceiro. Sem consentimento, é um tratamento de dados sem base legal clara.
Regra: Numa sessão limpa, sem nenhum clique, o browser não enviou dados de medição ou eventos a serviços de analítica, publicidade ou redes sociais (endereços de recolha publicados). Carregar o script sem enviar medição não conta. (Lei 41/2004, art. 5.º; RGPD, art. 6.º)
Recusar ao mesmo nível de aceitar
Recusar é tão fácil como aceitar?
Sem aviso de cookies e sem rastreio medido: não há o que recusar. O aviso de cookies foi procurado no que o site mostra ao abrir, antes de qualquer clique.
Se aceitar é um clique e recusar exige vários, o consentimento não é livre. O botão de recusa deve estar no primeiro nível, ao lado do de aceitar.
Regra: O aviso de cookies tem um botão de recusa no primeiro nível, ao lado do de aceitar. (Orientações do CEPD 05/2020 sobre consentimento)
Política de privacidade ligada da inicial
A página inicial liga para a política de privacidade?
O que encontrámos
«Política de Privacidade» → https://pp.cm-abrantes.pt/
O munícipe tem direito a saber que dados são tratados, para quê e a quem se dirigir. A política tem de estar ao alcance.
Regra: A página inicial tem uma ligação para a política de privacidade ou de protecção de dados. (RGPD, art. 12.º e 13.º)
Segurança
Se a ligação é protegida e o site segue as defesas básicas que qualquer servidor público devia ter.
HTTPS
O site usa ligação cifrada (HTTPS)?
O que encontrámos
https://www.cm-abrantes.pt/
Sem HTTPS, o que o visitante envia e recebe pode ser lido ou alterado pelo caminho.
Regra: A página inicial serve-se em HTTPS com certificado aceite pelo Chrome. (RGPD, art. 32.º)
http redirecciona para https
Quem escreve http:// é enviado para https://?
A prova
http://www.cm-abrantes.pt/ → ECONNRESET
A porta 80 não responde: não há versão http a redireccionar.
Muitos visitantes chegam por ligações antigas em http. Se o servidor não os redirecciona, a primeira visita fica desprotegida.
Regra: Um pedido a http:// é redireccionado para https://. (Boas práticas (CNCS))
HSTS
O site obriga o browser a usar sempre HTTPS (HSTS)?
A prova
cabeçalho ausente
O HSTS diz ao browser para nunca mais tentar a versão insegura, o que fecha a porta a ataques de intercepção.
Como corrigir
- Envie o cabeçalho Strict-Transport-Security: max-age=31536000; includeSubDomains.
Regra: A resposta da página inicial traz Strict-Transport-Security com max-age. (RFC 6797)
Recusa TLS 1.0 e 1.1
Recusa as versões antigas do TLS (1.0 e 1.1)?
O que encontrámos
TLS 1.0: recusado; TLS 1.1: recusado; negociado por omissão: TLSv1.3
O TLS 1.0 e 1.1 foram descontinuados em 2021 (RFC 8996) por terem fragilidades conhecidas.
Regra: O servidor recusa ligações em TLS 1.0 e 1.1 (versões descontinuadas). (RFC 8996)
Content-Security-Policy
Declara uma política de segurança de conteúdo (CSP)?
A prova
cabeçalho ausente
A CSP limita de onde podem vir scripts e recursos, e trava muitos ataques de injecção de código.
Como corrigir
- Comece com Content-Security-Policy-Report-Only para ver o que seria bloqueado, e depois passe à política definitiva.
Regra: A página inicial declara uma política de segurança de conteúdo (cabeçalho ou meta). (W3C CSP)
Protecção contra enquadramento
Impede que o site seja embutido noutro site?
A prova
sem X-Frame-Options nem frame-ancestors
Sem esta protecção, outra página pode mostrar o site da câmara dentro de uma moldura e enganar o visitante a clicar onde não quer.
Como corrigir
- Envie X-Frame-Options: SAMEORIGIN, ou frame-ancestors 'self' na CSP.
Regra: X-Frame-Options (DENY ou SAMEORIGIN) ou frame-ancestors na CSP. (RFC 7034)
X-Content-Type-Options
Envia o cabeçalho X-Content-Type-Options?
A prova
cabeçalho ausente
Impede o browser de adivinhar o tipo de um ficheiro, o que evita que um carregamento inocente seja executado como código.
Como corrigir
- Envie X-Content-Type-Options: nosniff em todas as respostas.
Regra: Cabeçalho X-Content-Type-Options: nosniff. (Fetch Standard)
Referrer-Policy
Controla o que é enviado a outros sites ao sair (Referrer-Policy)?
A prova
cabeçalho ausente
Sem política, o endereço completo da página (com parâmetros de pesquisa ou formulário) pode seguir para sites externos.
Como corrigir
- Envie Referrer-Policy: strict-origin-when-cross-origin.
Regra: Cabeçalho Referrer-Policy presente (e não unsafe-url). (W3C Referrer Policy)
Sem conteúdo misto
Carrega tudo por HTTPS, sem conteúdo misto?
Um script ou imagem pedido por http numa página https abre uma brecha na protecção e pode ser bloqueado pelo browser.
Regra: Nenhuma página da amostra pede recursos (imagens, scripts, estilos, iframes) nem envia formulários por http://. (W3C Mixed Content)
Não expõe versões de software
Esconde as versões do software que usa?
Mostrar a versão exacta do CMS, de plugins ou do servidor ajuda um atacante a escolher a vulnerabilidade certa.
Regra: Nem o meta generator, nem os cabeçalhos Server/X-Powered-By, nem o readme.html do WordPress mostram números de versão. (OWASP WSTG-INFO-02)
Sem bibliotecas JS vulneráveis
As bibliotecas JavaScript estão actualizadas?
Versões antigas de bibliotecas como o jQuery têm vulnerabilidades públicas (CVE) com correcção disponível há anos.
Regra: Nenhuma biblioteca JavaScript carregada na amostra está numa versão com vulnerabilidade pública (CVE) da nossa lista. (Lista publicada no README)
A amostra e as provas
O que abrimos, e quando
Medido a 26 de Setembro de 2026, num Chrome actual, numa sessão limpa e sem cliques. Estas foram as páginas da amostra:
Para a câmara
Análise gratuita: o que falta para subir na tabela
Nesta edição, Abrantes cumpre 9 dos 17 critérios medidos. A DEMARCA analisa os 8 que ficaram por cumprir e indica o que corrigir primeiro, sem compromisso.

