Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Text Marks the Spot

Sighted readers can glance at a web page and find where the article actually starts in a second or two. They tune out the menu, the cookie banner, the related-stories list without thinking about it. Screen reader users have always had to walk past all of that one item at a time.

Text Marks the Spot does that walking for you. When a page loads, the cursor goes to where the content starts and NVDA reads it. No keypress needed. From there your usual NVDA keys take over.

Everything runs locally. No network calls, no AI, no telemetry.

Hear it in action

A short audio clip of the add-on flipping through three web pages (mp3).

Download and install

There are two ways to get Text Marks the Spot, and the difference between them matters.

The easy way, and the one I recommend, is the NVDA Add-on Store, where the add-on now lives. In NVDA, press NVDA+N for the menu, go to Tools, then Add-on Store, find Text Marks the Spot under Available add-ons, and install it from there. The big payoff is that NVDA keeps it current for you. When I ship a new version, your copy updates on its own and you never have to think about it.

The other way is to download it straight from this page: Get Text Marks the Spot. Open the downloaded file, NVDA prompts to install, and you accept and restart NVDA when it asks. One thing to know going in: an add-on you install this way does not update itself. You will have to come back and grab the newest version by hand when one comes out. If you would rather have updates handled for you, use the store instead.

If you want a specific version, the releases page lists them all.

To uninstall later: in NVDA, go to Tools, then Manage add-ons, select Text Marks the Spot, choose Uninstall, and restart NVDA.

How it works

When a page finishes loading in browse mode, the add-on looks at the page's structure and decides what kind of page it is. An article gets a different landing than a list of stories, a form, or a "thank you" page.

If the add-on isn't confident about what the page is for, it stays silent and your normal NVDA keys behave the way they always have. A wrong guess is worse than no guess.

What it does

The landing depends on the kind of page:

  • Article (Wikipedia, news story, blog post): the cursor moves to the first real paragraph and NVDA reads it. You skip the menu, the cookie banner, and the "skip to main content" link without pressing H or P.
  • List or index page (news homepage, search results, a grid of cards): the cursor moves to the first headline so you can start scanning with H. No auto-read.
  • Form page (signup, login, contact): the form's title is announced and focus moves to the first field.
  • Status page (closed form, "thank you for submitting", maintenance, 404): the cursor lands on the status sentence.
  • Result widget (speed test, weather, single-quote stock price, battery level): the cursor lands on the label so the value reads on the next arrow press.
  • Search box already focused: silent. The site already decided where you should start.
  • Video player, dashboard, app, or anything unrecognized: silent.

Keyboard commands

The add-on binds three gestures. Every other NVDA key behaves the way it always has.

  • Z in browse mode: scan forward from the cursor to the next real paragraph. The add-on skips headings (use NVDA's H for those) and skips ads, menus, and share buttons.
  • Shift+Z in browse mode: return to where the add-on first placed you on this page. A quick jump back. If the add-on has not placed you anywhere yet, for example when you switch back to a tab that was already open, Shift+Z runs the detection right then and takes you to the result.
  • NVDA+Z in browse mode: add or remove the current site from the exclusion list. NVDA asks before changing it. On an excluded site, press Z twice quickly for a one-time detection that does not change the list.

Outside browse mode (terminals, edit fields, native apps), Z types a normal letter.

Tips and tricks

  • The cursor lands on the first real paragraph automatically. If that pick is off, press NVDA's H to find the heading of the section you want, then press Z to drop onto the first paragraph below it.
  • Shift+Z at any time returns you to where the add-on first placed you. Handy after wandering with arrow keys when you want to start over.
  • Switching between browser tabs never triggers an automatic landing; that is deliberate, so quiet tab checks stay quiet. When you come back to a tab and want a landing, press Shift+Z.
  • On slow-loading sites (Gmail, some news pages), the content sometimes shows up after the add-on's first scan. The add-on retries once automatically about a second and a half later. You can also press Z to trigger a fresh scan from where you are.
  • NVDA+S cycles NVDA's speech mode and the add-on respects it. In beeps mode NVDA beeps for each line. In off mode the cursor still moves but nothing is spoken.

Disabling on a site you do not want it on

Press NVDA+Z in browse mode. NVDA asks whether to add the current site to the exclusion list. Press Y to confirm. The add-on stays silent on that site afterward.

To re-enable a site, press NVDA+Z again on it.

For a one-time detection on an excluded site, press Z twice in quick succession. The add-on runs once without changing your exclusion list.

See where the cursor landed visually

If you have some vision, NVDA can draw a colored box around the cursor. Open Preferences, then Settings, then Vision, and turn on "Highlight focus" or "Highlight browse mode caret". Useful for low-vision users and for showing the add-on working to sighted colleagues, family, or clients.

Known limitations

  • Email is not supported yet. Web only for now. Email handling is on the roadmap.
  • Very sparse pages (business cards, contact-only pages). The add-on stays silent because there is nothing substantial to land on. Your normal NVDA keys work the way they always have.
  • Slow-loading pages (Gmail, single-page apps). Content sometimes shows up after the add-on's first scan. It retries once automatically. You can also press Z to trigger a fresh scan.
  • Articles with the intro in an unusual place. Some sites (Apple Support is one) put the article's intro somewhere the add-on cannot see. The cursor lands on the next paragraph instead. Use Shift+H to back up to the page title and arrow down to read the intro.

Reporting bugs and getting help

Open an issue on GitHub if something does not work the way you expect.

A bug report is most useful when it includes:

  • The add-on version (visible in NVDA's add-on manager)
  • Your NVDA version
  • The URL where the issue happened, if it is not private
  • A short description of what you heard versus what you expected

If you would rather not file publicly, email help@webfriendlyhelp.com instead. Either way I will get back to you.

For questions, ideas, or general feedback, use the Discussions tab in the same repository.

Privacy

Everything runs locally. No network calls, no telemetry, no data collection.

Compatibility

NVDA 2024.1 or newer. Last tested with NVDA 2026.2.0. Pure Python, no native libraries. Works in 32-bit and 64-bit NVDA.

License

GPL v2.

Author

Casey Mathews. Web Friendly Help LLC. help@webfriendlyhelp.com.

NVDA Certified Expert (2017, 2019, 2022, 2025).

For developers

See SPEC.md and CLAUDE.md in the project repository for the design document, build instructions, and contributor notes.

About

NVDA add-on that jumps the browse cursor to the start of real content on web pages. No keypress, no network.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages