Sobre este problema HTML
HTML tem um conjunto definido de atributos globais (como id, class, lang, e title) e atributos específicos de elementos. Qualquer atributo que não faça parte destes conjuntos reconhecidos irá despoletar um erro de validação. O atributo st_title é um atributo proprietário, não-padrão que era usado por versões antigas do widget de partilha ShareThis para passar metadados — especificamente, o título do conteúdo a ser partilhado.
A especificação HTML5 introduziu atributos data-* como o mecanismo padrão para incorporar dados personalizados em elementos. Estes atributos permitem que os programadores armazenem informação arbitrária sem entrar em conflito com a especificação HTML. Versões mais recentes do ShareThis e serviços similares adotaram esta convenção, mas código legado — especialmente em temas CMS, plugins, ou módulos — pode ainda usar o formato antigo não-padrão.
Usar atributos inválidos causa vários problemas:
- Conformidade com padrões: O documento falha a validação W3C, o que pode indicar problemas mais profundos de qualidade de marcação.
- Compatibilidade futura: Os navegadores não são obrigados a lidar com atributos não-padrão de forma previsível. Atualizações futuras dos navegadores podem ignorá-los ou removê-los.
- Manutenibilidade: Atributos não-padrão tornam o código mais difícil de compreender e manter por outros programadores.
- Ferramentas de acessibilidade: Leitores de ecrã e outras tecnologias assistivas dependem de HTML bem formado. Atributos inválidos podem causar comportamento inesperado nestas ferramentas.
Para corrigir isto, substitua todos os atributos proprietários ShareThis pelos seus equivalentes data-*. Por exemplo, st_title torna-se data-st-title, st_url torna-se data-st-url, e displayText torna-se data-st-displaytext. Você deve também atualizar a biblioteca JavaScript ShareThis para uma versão que reconheça o novo formato de atributos.
Exemplos
❌ Inválido: Usar atributos proprietários
<span class="st_sharethis" st_title="My Article" st_url="https://example.com/article" displayText="ShareThis">
Share
</span>
Isto desperta erros de validação para st_title, st_url, e displayText porque nenhum destes são atributos HTML válidos.
✅ Válido: Usar atributos data-*
<span class="st_sharethis" data-st-title="My Article" data-st-url="https://example.com/article" data-st-displaytext="ShareThis">
Share
</span>
Todos os dados personalizados estão agora armazenados em atributos data-* adequadamente nomeados, que são totalmente conformes com a especificação HTML5.
✅ Válido: Usar um elemento button com atributos data-*
Se o elemento é interativo (por exemplo, despoleta uma ação de partilha ao clicar), considere usar um <button> em vez de um <span> para melhor acessibilidade:
<button type="button" class="st_sharethis" data-st-title="My Article" data-st-url="https://example.com/article">
Share this article
</button>
Corrigir isto num CMS
Se você está a usar Drupal, WordPress, ou outro CMS com um módulo ou plugin ShareThis:
-
Atualize o plugin/módulo para a versão mais recente — a maioria já migrou para atributos
data-*. - Verifique os templates do seu tema para marcação ShareThis hardcoded que pode ainda usar o formato antigo de atributos.
-
Procure na sua base de código por
st_title,st_url, edisplayTexte substitua-os pordata-st-title,data-st-url, edata-st-displaytextrespetivamente. - Atualize o JavaScript ShareThis para uma versão compatível com os novos nomes de atributos, e verifique que a funcionalidade de partilha ainda funciona após a alteração.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.