Skip Link Quirk

One reason to test with an actual screen reader is to uncover any annoying quirks that may be lurking in your web page. An example of this is the behavior of links within Firefox. When a user is browsing with caret navigation and activates a link, if the DOM object that the link is pointing to has no content, then the result is that the navigation caret will disappear. This in turn causes problems for screen readers. The solution is to make sure that links point to the DOM object that the users should be taken to and not to an empty space before the target.

Note that there is nothing inherently better about either having the link before the target object or directly on the target object. However, having it directly on the target object will work correctly in more situations, thus it should be the preferred approach. Quirks like this are unobvious and usually only uncovered through testing.

Broken and Working Links Example

Use Fire Vox to read forward until you reach the link. Notice how there is a cursor when you reach the first link. Activate the link by pressing enter. Notice how the cursor has disappeared. Now try to read forward again. You will now be taken to the second link, indicating that you were not skipped forward as you should have been. Activate the second link. Notice how the cursor shows up this time. Try to read forward again. This time, it will work correctly.

This will jump to the bottom of this page, but it will cause the navigation caret to disappear.

This will jump to the bottom of this page, and the navigation caret will still show up.

Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.
Some random text to take up space.

The target