Website problems

Menu links that lead nowhere

The primary navigation is how most visitors move through a site, which makes a broken entry in it more expensive than a broken link anywhere else. The failures are unglamorous: an entry whose target is a placeholder, an entry pointing at a page that no longer exists, a dropdown parent that cannot be activated, an icon-only control with nothing a screen reader can announce. Each loses visitors quietly, and each is usually one component rather than many pages.

The shapes a dead entry takes

A placeholder target — a hash, a hash followed by nothing, or an empty attribute — left where a real destination was meant to go.

A target pointing at a page that was removed or moved, which is a broken link in the most visible position on the site.

A dropdown parent whose own target is a placeholder because it exists only to open a submenu, which breaks for anyone who cannot hover.

An entry rendered conditionally that renders as an empty element when its condition fails.

An icon-only entry with no text and no accessible name, which is announced as a link with no destination described.

Why it costs more than a broken link elsewhere

The navigation appears on every page, so a single defect is present on the whole site.

It is the first thing a visitor uses when they do not find what they came for, which is the moment a failure costs most.

Crawlers follow it to discover the site's structure, so an entry that leads nowhere removes a discovery path for everything beneath it.

And it is the element users trust most: an entry that does nothing reads as the site being broken rather than as one link being wrong.

The dropdown parent problem specifically

A parent entry that only opens a submenu is frequently given a placeholder target so it looks like a link.

On a mouse it works, because hovering opens the submenu and the target is never followed.

On a keyboard or a touch device, activating it navigates to the placeholder — which does nothing or jumps to the top of the page.

The correct markup is a button with an expanded state when the parent only opens a submenu, and a real link when it also has a destination.

Which is the same distinction as anywhere else: a control that acts is a button, a control that navigates is a link.

How to fix it

Give every entry a real destination, or make it a button if it does not navigate.

Give every entry an accessible name — visible text, or a label where the entry is an icon.

Label the navigation landmark itself, so assistive technology offers it as a named region rather than an unnamed list.

Remove entries whose destination no longer exists rather than pointing them at the home page, which tells a visitor nothing.

Fix it in the component rather than per page, since that is almost always where it lives.

The mobile variant

A collapsed menu whose toggle has no accessible name, which is the most common mobile navigation defect.

A toggle implemented on a non-interactive element, which a keyboard cannot reach at all.

Entries that exist in the desktop menu and are dropped from the mobile one, which makes part of the site unreachable on a phone.

A submenu that cannot be opened without hovering, which no touch device can do.

Each of those is the same class of defect appearing at a different viewport, which is why the navigation is worth checking at both.

How to check it yourself

View source and read every target in the navigation — a hash alone or an empty attribute is the finding.

Tab through the menu and activate each entry with the keyboard, which finds the dropdown parents immediately.

Check the menu at a phone viewport, where the markup is frequently different.

Run a link check restricted to the navigation, which is a small list and the highest-value one on the site.

Listen to the menu with a screen reader, which is where unnamed icon entries become obvious.

How VeriFixScan detects it

`structure.menu` analyses the primary navigation region: its links, its ARIA attributes, its sub-menus and its dead entries.

`structure.navigation` compares navigation across the crawled pages and checks the key pages are linked from it.

`availability.broken_links` reports targets that answer with an error, which covers the entries pointing at removed pages.

`mobile.menu` and `mobile.navigation` examine the same region at a phone viewport.

`accessibility.interactive_elements` reports elements made interactive without the semantics that make them reachable, which is the dropdown parent case.

Frequently asked questions

What should a dropdown parent that only opens a submenu be?
A button with an expanded state. A placeholder link works with a mouse and navigates to nothing on a keyboard or a touch device.
Can I point a removed page's entry at the home page?
It stops the error and tells the visitor nothing about what happened. Removing the entry, or pointing it at the real successor, is the honest answer.
Why check the mobile menu separately?
Because the markup is frequently different: entries get dropped, toggles get built on non-interactive elements, and submenus depend on hover that no touch device has.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website