verbb / navigation

A Craft CMS plugin to create navigation menus for your site.
Other
90 stars 23 forks source link

Passive Node is not crawl-able link Pagespeed flag! #369

Open wihodges opened 1 year ago

wihodges commented 1 year ago

What are you trying to do?

When using a passive node for structural distinction, google page speed flags that anchor element as "not crawlable link" and hurts the SEO score awarded to page because there is no href on an anchor tag.

What's your proposed solution?

The passive node should default with href="#" automatically, and possibly aria-hidden=true attribute. The href="#" solves the Pagespeed issue.

Additional context

While the passive node is a good designation for labels and headers on navigations, especially footers, it should probably be a tag instead, but understandably, there are probably a lot of legacy anchor tag styles involved.

https://github.com/verbb/navigation/issues/183

engram-design commented 1 year ago

I’m hesitant to add href=# because I’m not sure how “safe” this is for everyone and the multitude of sites out there. But it might have to be a stop-gap for now.

The proper fix for this is probably to change to HTML tag used to <span>, but that’s going to be a breaking change for people staying navigation nodes and assuming everything is a <a>. I’ll have to introduce a getTag() function for node types.

I’m not sure if you want to add aria-hidden=true as that will hide the node from screen readers?

This also only affects the use of craft.navigation.render() as with custom rendering you have full control over the output.

iainhenderson commented 9 months ago

I recently ran into the same thing. Instead of adding href="#" adding role="none" may be a safer solution and should keep pagespeed quiet.

engram-design commented 9 months ago

I'll admit that I've not had time to properly research alternatives, so thanks for chiming in with role="none". I'll look into it further, but that sounds much better!