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.
A short audio clip of the add-on flipping through three web pages (mp3).
Open the downloaded file. NVDA prompts to install. Accept and restart NVDA when it asks.
To uninstall later: NVDA → Tools → Manage add-ons → select Text Marks the Spot → Uninstall → restart NVDA.
If you would rather pick a specific version, the releases page lists them all.
The add-on is also being submitted to the NVDA Add-on Store. Once accepted there, NVDA will keep it current for you automatically.
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.
The landing depends on the kind of page:
H. No auto-read.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.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.
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.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.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.
If you have some vision, NVDA can draw a colored box around the cursor. Open Preferences -> Settings -> 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.
Z to trigger a fresh scan.Shift+H to back up to the page title and arrow down to read the intro.Open an issue on GitHub if something does not work the way you expect.
A bug report is most useful when it includes:
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.
Everything runs locally. No network calls, no telemetry, no data collection.
NVDA 2024.1 or newer. Last tested with NVDA 2026.1.1. Pure Python, no native libraries. Works in 32-bit and 64-bit NVDA.
GPL v2.
Casey Mathews. Web Friendly Help LLC. help@webfriendlyhelp.com.
NVDA Certified Expert (2017, 2019, 2022, 2025).
See SPEC.md and CLAUDE.md in the project repository for the design document, build instructions, and contributor notes.