Hash/âncoras estão sendo removidos dos URLs no mobile. Como parar isso?

Quando clico em um link com âncora no desktop, ele rola até o local. No entanto, no mobile (Android, FF e Chrome), a âncora é removida da URL, então não há rolagem até aquele ponto.

O que estou tentando fazer:

Temos um longo documento de diretrizes e FAQ que precisa vincular a títulos. Como o Discourse remove os parâmetros id, criei um componente de tema simples que usa atributos de dados personalizados no documento de destino e escuta âncoras na URL para rolar até o elemento com o atributo de dados correspondente.

Funciona no desktop!

No entanto, no mobile, as âncoras parecem ser removidas, de modo que, ao chegar na página de destino, não há rolagem até o elemento correto. E, claro, com um documento longo, é no mobile que você mais precisa dessa navegação.

Agora, percebo que as âncoras geradas pelo componente Índice funcionam quando abertas em uma nova janela. Elas não são removidas da URL e o navegador rola até o local correto.

Como posso fazer isso funcionar?


(Desabafo: Tem sido realmente frustrante tentar fazer algo tão básico e fundamental para o HTML, ou seja, ter âncoras e vincular a elas. Percebo que, como as postagens são conteúdo criado por usuários, há questões de segurança. Mas parece que as soluções implementadas para proteger contra abusos são muito grosseiras e tornam algo muito simples muito complicado. Dito isso, meu site nunca foi invadido, então acho que isso é algo.)

Pequena atualização…

Alguém sugeriu usar parâmetros de consulta em vez disso. Eles não parecem ser removidos no mobile. Mas, surpreendentemente, são removidos no desktop.