Pontuação global
57,6/100
218.º 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 name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> (em https://cm-valenca.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 dir="ltr" lang="pt-PT" prefix="og: https://ogp.me/ns#" class="wf-montserrat-n4-active wf-montserrat-n7-active wf-montserrat-n5-active wf-active" style="height: 100%;">
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?
Quem não vê a imagem ouve a descrição. Sem ela, o leitor de ecrã lê o nome do ficheiro, ou nada.
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?
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?
A prova
«Contactos» 2,25:1 (exige 4,5:1), rgb(167,167,167) sobre rgb(247,247,247), em https://cm-valenca.pt/; «Contactos» 2,25:1 (exige 4,5:1), rgb(167,167,167) sobre rgb(247,247,247), em https://cm-valenca.pt/municipio/; «Contactos» 2,25:1 (exige 4,5:1), rgb(167,167,167) sobre rgb(247,247,247), em https://cm-valenca.pt/servicos-municipais/
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.
Como corrigir
- Escureça a cor do texto (ou clareie o fundo) até chegar a 4,5:1; em letra grande basta 3:1.
- Confirme com um verificador de contraste antes de publicar a nova cor.
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://cm-valenca.pt/acessibilidade (404); https://cm-valenca.pt/declaracao-de-acessibilidade (404); https://cm-valenca.pt/p/acessibilidade (404); https://cm-valenca.pt/pt/acessibilidade (404); https://cm-valenca.pt/acessibilidade-e-usabilidade (404); https://cm-valenca.pt/declaracao-acessibilidade (404); https://cm-valenca.pt/index.php/acessibilidade (404); https://cm-valenca.pt/detalhe/acessibilidade (404)
Não encontrámos a Declaração: nem numa ligação da página inicial, nem nos endereços habituais, nem no mapa do site, nem nas outras páginas da amostra. 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?
A prova
__Secure-YNID (youtube.com, .youtube.com), YSC (YouTube, .youtube.com), __Secure-ROLLOUT_TOKEN (youtube.com, .youtube.com), VISITOR_INFO1_LIVE (YouTube, .youtube.com), VISITOR_PRIVACY_METADATA (YouTube, .youtube.com)
Sem envio de medição antes do consentimento
Envia dados a serviços de medição antes do consentimento?
Carregou recursos de youtube.com sem enviar medição: registado, não conta.
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?
Não encontrámos pedido de consentimento, e o site rastreia antes de qualquer escolha.
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.
Como corrigir
- Acrescente um botão «Rejeitar» no primeiro ecrã do aviso, com o mesmo destaque do «Aceitar».
- Evite avisos do tipo «ao continuar a navegar aceita».
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://cm-valenca.pt/politica-de-privacidade/
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://cm-valenca.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://?
O que encontrámos
http://cm-valenca.pt/ → 301 https://cm-valenca.pt/
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)?
O que encontrámos
valor: max-age=31536000; includeSubDomains
O HSTS diz ao browser para nunca mais tentar a versão insegura, o que fecha a porta a ataques de intercepção.
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?
O que encontrámos
valor: nosniff
Impede o browser de adivinhar o tipo de um ficheiro, o que evita que um carregamento inocente seja executado como código.
Regra: Cabeçalho X-Content-Type-Options: nosniff. (Fetch Standard)
Referrer-Policy
Controla o que é enviado a outros sites ao sair (Referrer-Policy)?
O que encontrámos
valor: strict-origin-when-cross-origin
Sem política, o endereço completo da página (com parâmetros de pesquisa ou formulário) pode seguir para sites externos.
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?
A prova
meta generator: All in One SEO (AIOSEO) 4.6.6; meta generator: WordPress 7.1.2; meta generator: Site Kit by Google 1.119.0; meta generator: Elementor 3.14.1; features: e_dom_optimization, e_optimized_assets_loading, e_optimized_css_loading, a11y_improvements, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap; meta generator: Powered by Slider Revolution 6.6.8 - responsive, Mobile-Friendly Slider Plugin for WordPress with comfortable drag and drop interface.
Mostrar a versão exacta do CMS, de plugins ou do servidor ajuda um atacante a escolher a vulnerabilidade certa.
Como corrigir
- Remova o meta generator do tema e dos plugins.
- No servidor, desligue a versão nos cabeçalhos Server e X-Powered-By.
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?
O que encontrámos
Detectadas: jquery 3.7.1, jquery-ui 1.14.2
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 25 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, Valença cumpre 13 dos 21 critérios medidos. A DEMARCA analisa os 8 que ficaram por cumprir e indica o que corrigir primeiro, sem compromisso.


