Ask HN: Best way to test accessibility of a website?

237 points by pcmaffey ↗ HN
Is there a bot/crawler akin to Google's Webmaster Tools that will test, score, and identify accessibility issues on a website?

If not, what are some best practices people use to maintain accessibility? Does anyone write tests for this functionality? Would love to learn more, top resources, checklists people use, etc.

117 comments

[ 3.3 ms ] story [ 178 ms ] thread
Lighthouse, available in Chrome devtools, includes an a11y audit although how thorough it is I can't say.
I'm also looking for something similar: you give it a list of routes and it will score each of them.

Doing this manually with Chrome's Audit tool for each route is time consuming.

We had to do this a few years ago for a major bank. Automated tools like a11y will only get you a certain amount of the way. Your tests will say 100% but your app may still be completely useless to blind people especially if you’re using an SPA as all screen readers perform differently.

Having a partially sighted consultant come in and point out the deficiencies and how they use devices was extremely helpful. A lot of sight impaired people use Apple devices as their voiceover support is excellent, Android is getting better but you will find a lot of differences between their implementations in versions which is extremely frustrating. For desktop on windows JAWS seems to be the most used which again has its own way of parsing.

I don’t know if it’s changed but my advice would be plenty of manual testing, there’s really not much else than actually using the devices with voiceover enabled to test if things actually work properly. And it’s also a case of compromise and picking what devices to support as fixing something on one reader will inevitably break another.

Hope that helps :)

Pay me to do it...

But in all seriousness, I use aXe-Coconut[1], headingsMaper[2]. Then tab through the page and make sure you can get from top left to bottom right. The cursor[focus state /ouline] should be visible the whole time and you should never lose your place.

When you are done that, if you have a Mac turn on voiceover with Command+F5 and use Safari or Chrome (more aria-support). On Windows, download NVDA[3] and FireFox. Again use the keyboard to go through the page, but listen to the screen reader and make sure everything is spoken like it looks. So a button should say, "Submit Form Button" etc. Anything that doesn't say anything, ie, " button" or say something different from what you see needs work.

The general consense of the community is that automated testing only finds 30% of issues, so you've got to test manually.

[1] https://chrome.google.com/webstore/detail/axe-coconut/iobddm... [2] https://chrome.google.com/webstore/detail/headingsmap/flbjom... [3] https://www.nvaccess.org/

what are your rates and why are you qualified?
I don't want the extra work. But I do accessibility as my full-time job.
Do you have a recomended service? Part of our service has us hosting a form for our customers that is exposed to their users, so accessibility is a priority.

Thanks for any pointers!

I would add, to really test, after turning on voice over, turn off your monitor. This will let you test if you can explore your website with the visual structure.
Don't do this - the best way to evaluate is to compare the visual output with the auditory output, something you can't do if the screen is turned off.
The two practices are not mutually exclusive. Why not test against both?
I sort of agree, from my experience, I know what to expect when I see something, so seeing and hearing helps me quickly spot the issue.
Check the WCAG success criteria that your jurisdiction requires. One less obvious, and commonly required, criteria (WCAG 2.4.1[1]) is that the site has some mechanism by which a screen reader user can jump from the beginning of the document to the main content, without having to browse through the preceding navigational links and similar.

[1] https://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechan...

Skip-links should also be accessible for keyboard users.
Good point, I'm not a fan of FaceBook but they do an amazing job of this.

If you tab out of the URL bar of your browser, Facebook has a huge accessibility skip links menu.

+1 for this advice. Identifying the issues is just one part of the work, finding a correct and usable solution might be lots of work if you don't have much experience with accessibility.

I also do full-time accessibility work. Don't need extra work right now, but feel free to get in touch to discuss work in the (near) future.

Finding a solution is the hard part. I've found, the few times that I've been able to sit with the developer and test their code as they tried to solve an accessibility problem was the best method.
What about JAWS and IE on Windows? Most disability groups distribute and use JAWS not NVDA. (Assuming OP is in the United States)
JAWS costs around $1000, NVDA is free. I'm assuming the person doesn't have the budget to buy JAWS. There is a demo for JAWS, but its 40 minutes, that isn't going to be enough to test a page (especially when you need to restart your computer for another 40 minutes).
Use aXe for automated tests and test everything manually with JAWS + Firefox (most popular screen reader Desktop combination) and iOS VoiceOver (most troubling mobile issues in my experience).

If you can afford in your project, use a external service that tests with people with different disabilities.

JAWS + IE is the most popular combination [1]

[1] https://webaim.org/projects/screenreadersurvey7/#browsercomb...

> JAWS + IE is the most popular combination

It's worth keeping a few points in mind when reading these results:

1. The survey was carried out in October 2017. Things can and do move quite rapidly in this area, especially given the increased number of users who will be running Windows 10 now who may not have been back then.

2. IE won't be around forever, and once the accessibility of Microsoft Edge improves (which is likely to happen pretty soon when they adopt Chromium), IE will become less and less relevant.

3. NVDA with Firefox is a much more common combination than JAWS with Firefox, primarily because the NVDA developers recommend it. Freedom Scientific (makers of JAWS) have historically pushed IE perhaps more than other browsers, so it will be interesting to see how that changes as Edge becomes more usable.

My only comments to that would be WebAim is the highest authority on accessibility.

I'm well aware that these combinations will change over time.

The biggest thing is that JAWS costs a lot of money, so people buy, get used to it, and stick with their setup.

I tend to say, 'The only people who still use IE have no choice" or something like that.

> WebAim is the highest authority on accessibility.

I'm not sure that's strictly true nor measurable, or really matters in this case when we're discussing a survey filled out by users.

IE is mostly used here because it works best with the screenreaders, not because it's preinstalled or other common reasons. When I test with IE, and then with Firefox, I notice subtle things with big impact working better in IE e.g. I found that screenreaders are particular better with multilingual content on IE. I can't recall the exact screenreader/browser combo, but on IE, I got proper support for different voices for different languages when an element other than the HTML element had a lang attribute.
You're right. Had it wrong in my head.
Microsoft recently open sourced[1] one of the main tools they use for web accessibility testing.

Accessibility Insights for Web (https://accessibilityinsights.io) is a Chrome extension that guides you through doing an accessibility assessment of a website. It includes a combination of automated checks (using aXe[2]) and assisted/guided manual checks. Its rules are based on the W3C Web Content Accessibility Guidelines[3]; passing a full assessment in the tool amounts to meeting all the "A" and "AA" WCAG 2.0 requirements.

Like other commenters have mentioned, automated checks (like aXe) are a great start, but aren't really sufficient on their own. Accessibility Insights will lead you through how to test different aspects of screen reader usage (and other types of accessibility issues, too!). It will also help you track issues as you go, and produce a pretty report at the end that you can attach to a bug.

As with most types of UI testing, no matter what tools you're using, there's really no substitute for watching a real user try to use your product.

Disclaimer: I am an engineer that works for Microsoft on the Accessibilty Insights team.

[1] https://cloudblogs.microsoft.com/opensource/2019/03/12/micro... [2] https://www.deque.com/axe/ [3] https://www.w3.org/WAI/WCAG21/quickref/

Hey I just tried this out, it's pretty awesome. Hadn't heard of it at all before. Love the tab-index mapping. Have you folks talked to the Lighthouse team to get your work integrated there; or at least possibly referenced there? I know lighthouse has a couple of accessibility recommendations, would be nice to have visibility on it.
There is a great Chrome extension called aXe[1], as well as tools like Tenon[2] which also has a rest API so you can potentially set it up as part of a CI workflow.

It's worth remembering that "accessibility" is a broad term. If you want a tool which can identify some common antipatterns and the WCAG guideline(s) they violate, the tools I've mentioned are a good place to start. But if you want to create a truly accessible website which is also usable by people with special needs, you'll need experts to come in to carry out audits and specialised user testing.

Please feel free to drop me an email using the address in my HN profile. I'm a usability and accessibility professional, and disabled to boot. Happy to answer any questions you might have and connect you with other great resources, tools and people.

[1] https://chrome.google.com/webstore/detail/axe/lhdoppojpmngad...

[2] https://tenon.io/

Don't forget to check your website with a colorblindness simulator. This is a manual process unfortunately

Also with things like high contrast, high zoom level or increased font size, etc

As an additional comment for people coming across this thread in future and anyone else it may help. Please make sure that your accessibility tools are high quality, as you would when assessing any other dependency or service used in the development of your product. In particular, they should always assess the rendered DOM of any page, rather than a string of HTML. And if they make bold claims about the increased accessibility of your website once their recommendations are followed, or try to sell you some ridiculously cheap consultancy services, stay away. Whether you buy their consulting services or not, if they're too cheap, their tools probably are too. And if they tell you that automated testing is a route to complete usability for people with special needs, they're deluded.
Hire an engineer who needs accommodation. I mean that in jest of course, but only sort of. For a while I had an engineer on my team who was dyslexic and while not color blind themselves, were very in tune with the color blind community. They made huge improvements on not only our front end UX, but also on our codebase.

For example, apparently camelCase is really bad for dyslexics, and interstitial underscores are always_preferred.

There are multiple forms of dyslexia. For instance, I have one form and I have a daughter with a completely different variety. I have no problems with camelCase, but I am very particular about my fonts (Consolas for life).

I don’t like _ because of the keyboard placement. I don’t trust my pinkies at those angles.

My understanding from my coworker was that while some forms of dyslexics can process camelCase no problem, the underscore will never be worse than camelCase and will sometimes be better, so it's better to just use underscore. I'm certainly no expert though.
Disable javascript and see if it still works.
One tool, not mentioned so far, is tota11y: http://khan.github.io/tota11y/

It gives a bunch of inline annotations for accessibility problems and points of concern. Not sure how it compares with the others suggested, but might be useful to try.

Firefox recently added an accessibility inspector in the dev tools which may be of use.
In your test environment send HTML as type application/xhtml+xml, block all CSS and images, and add JavaScript that locks the mouse cursor to the first pixel on the screen. Then test the site for content and usability as you normally would.

Vision impaired persons do not benefit from CSS or images. All images should have proper corresponding alternate text. Changing the media type of the HTML does require a bit more strict syntax, but it also is a cheap trick to ensure the HTML tags and structure are arranged in a valid way.

I do not recommend disabling JavaScript. JavaScript is for interaction and blind persons need JavaScript just the same as the rest of us to navigate through content on complex sites. Inserting code that locks the mouse cursor to a single location forces QA to navigate the site/content using a keyboard.

Doing these things is the cheapest way to test for very basic compliance. In order to achieve AA WCAG 2.0 conformance you actually have to understand accessibility and classes of disabilities. You might be able to get some quick wins with tool automation, but manual testing is much better. There is one exception, color contrast. You absolutely need to use a tool to perform color contrast validation, because people eyes aren't good at accounting for both luminescence and contrast at the same time.

EDIT:

In FireFox (Windows) you can turn off CSS by clicking the ALT keyboard key to bring up the main menu then View -> Page Style -> No Style

> send HTML as type application/xhtml+xml

What does this change?

> Changing the media type of the HTML does require a bit more strict syntax, but it also is a cheap trick to ensure the HTML tags and structure are arranged in a valid way.
This seems a bit bananas to me because there’s plenty of valid HTML5 is NOT valid XHTML or XML. For example, HTML5 allows common tags such as <p> and <li> to be unclosed, which is not valid in XHTML. HTML5 written in this style is not “wrong” - it’s valid, and correctly presented by tools like VoiceOver. Screen readers will be a-okay with HTML5; this advice is going to send people down wild goose chases with no need.

XHTML is an alternative, dead-end branch of HTML evolution that time has forgotten.

To validate HTML, use an HTML validator.

In modern browsers all modern HTML5 is valid XHTML so long as it conforms to the syntax and tag structure. In fact the only real difference, aside from closing tags like br and img, is that with XHTML the browser yells at you when you get HTML wrong.

On my personal sites I send all my HTML with a .xhtml file extension to force XML compliance, but the code is modern HTML5.

> HTML5 allows common tags such as <p> and <li> to be unclosed

Yet many people (me included) consider this inappropriate and never use this allowance.

In some cases (when you hand-type/edit huge HTML documents) it is a handy feature but there probably are many scripts that can close the tags for you once you're done.

> Vision impaired persons do not benefit from CSS or images

They might. You probably mean blind people.

No, I mean vision impaired. There are all kinds of different vision disabilities besides blindness and color blindness.
Yes, exactly. And many such impairments will not prevent you benefitting from layout, colors, typography, images, and sundry other kinds of graphical trickery.
Sounds like you are confusing non-blindness for normal functionality. Fortunately, Wikipedia has a page for this: https://en.wikipedia.org/wiki/Visual_impairment

The idea of accessibility is that a product/service is available to a wide audience regardless of their physical/cognitive impairment. It is still discriminatory if some user might be capable of enjoying visual eye candy if they must struggle to do so due to an impairment and are denied access to that content otherwise.

I don't think you are understanding the parent correctly. They are saying a person with a partial visual impairment can still benefit from a well-designed visual page layout, because a person with partial visual impairment might still use vision in some ways. So well-designed CSS and images DO benefit those individuals. You seem to be implying that anyone with a visual impairment, even a partial one, would prefer to browse with CSS and images off. But that's not necessarily the case.
What does that have to do with accessibility?

> You seem to be implying that anyone with a visual impairment, even a partial one

I am not. Well written CSS, a subset of usability, is irrelevant to accessibility.

> Well written CSS, a subset of usability, is irrelevant to accessibility.

Says who?

https://www.w3.org/WAI/fundamentals/accessibility-usability-...

> There is a significant overlap between accessibility and usability. ISO 9241-11, defines usability as: The “extent to which a product can be used by specified users to achieve specified goals effectively, efficiently and with satisfaction in a specified context of use”. This could address accessibility when: “specified users” includes people with a range of disabilities, and “specified context of use” includes accessibility considerations such as assistive technologies.

Let me give an example: If I put icons on my buttons to improve the usability of my app, but the icons break at high zoom levels, then is that accessible? No, but you'd never know unless you do accessibility testing with CSS and images turned on.

> but the icons break at high zoom levels, then is that accessible?

Yes, it is still accessible, but usability is decreased. There are multiple ways to activate a button. Accessibility and usability are not contested or mutually exclusive qualities. You can have both great CSS and great accessibility at the same time.

Bad usability precludes good accessibility. You seem to be implying that accessibility is just about being able to access the content. That's wrong, accessibility is about ease of access to the content. If what you were saying were true, then semantically correct HTML wouldn't be a WCAG requirement. But semantically correct HTML improves usability for people using assistive technologies, thus it is an important part of designing accessible content. Accessibility IS dependent on usability.

If just the ability to access the content was the only factor in designing accessible content, then you could just tell your blind clients to view the page source and read it character by character. But obviously that would not be acceptable because it creates a significant barrier for usability that sighted clients would not face. Designing accessible content is about removing barriers that make it harder for people with disabilities to access the content, and bad usability is one of those barriers.

> That's wrong, accessibility is about ease of access to the content.

That doesn't account for cognitive disabilities.

Ease of access is up to the user-agent software. Accessibility is more than just that. As front end developers we have to provide that content in a meaningful and understandable form without getting in the browser's or screen reader's way. Sometimes that isn't enough and you need to use ARIA to clarify things more precisely.

> then you could just tell your blind clients to view the page source and read it character by character.

Screen readers provide a variety of navigational tools for drilling into page content. They don't just read text.

I am not really sure what you are arguing. You can have great CSS and great accessibility at the same time.

> Screen readers provide a variety of navigational tools for drilling into page content. They don't just read text.

And CSS is also used to provide navigational tools for drilling into page content. For example, putting navigation panels on a sidebar rather than in between the header and the content. That's not just done for aesthetics, it's done to make the information on the page easier to understand. But if your brilliantly-designed page layout breaks when zoomed in, then that is a barrier which disabled people will face that abled people will not. By doing accessibility testing with CSS disabled you will not be able to test the accessibility of such navigational features.

Sure, they could use a screen reader instead, but maybe they don't want to use a screen reader. Maybe page zoom is enough for them normally and that's what they prefer. By not taking accessibility into consideration when creating the visual design of the page, you are basically saying that the visual design of your page is crafted just for the needs of abled people, and disabled people should have to use special tools to access your content. That's inaccessible.

> I am not really sure what you are arguing. You can have great CSS and great accessibility at the same time.

You have my point backwards. I am arguing that you can't have great accessibility with bad CSS. Thus you need to do your accessibility testing with CSS enabled (just like how your clients who have disabilities will be using it).

You are deliberately confusing presentation for semantics, which is discriminatory. The WCAG directly mentions not doing this. You cannot achieve AA conformance when you attempt to force this on your users.

For example red means stop and green means go to many people. When color is the primary means of status description that is discriminatory, because blind people cannot perceive color in any way. The status must be described in some other way equally for all users, but it can be colored red/green by CSS for increased usability. The same goes for page structures like menu bars. The standards even provide examples with ARIA.

CSS is only a factor for people with motor control limitations when interactive controls are too close together to be accessed uniquely with a mouse click. If this is a concern for you have somebody with advanced Parkinson’s usability test your site, otherwise turn CSS off for all other accessibility testing.

> When color is the primary means of status description that is discriminatory, because blind people cannot perceive color in any way. The status must be described in some other way equally for all users

Yes, agreed. That's why you should provide a non-colour-based indicator of the status, AND ALSO make sure the colours work for partially vision impaired people (or colourblind, etc).

If the information is technically accessible, but in an awkward and hard-to-use format compared to the sighted version of that information, then it's not really accessible. Making colourblind people read awkward labels when you could just as easily use colourblind-compatible colours is inaccessible. I am not confusing presentation and semantics, I am just saying that both are involved in creating accessible content.

- Use blind accessibility tools with your website. If you're on iOS/macOS enable VoiceOver, figure out how it works, close your eyes and use your website.

- Disable JavaScript and use your website. This may not be relevant for web apps, but regular websites should work normally.

- Try to use your website with only the keyboard.

- Try to use your website with extreme zoom levels and font size overrides.

- Monitor your resource sizes. Anyone with a limited connection (a LOT of people) will abandon your website because it loads slowly, or are paying actual money for the wasted bandwidth.

I'm not aware of automated methods that give better results than using your website with the actual accessibility tools yourself.

> "Use blind accessibility tools with your website. If you're on iOS/macOS enable VoiceOver, figure out how it works, close your eyes and use your website."

I doubt this is going to be very effective. Sure, it's better than nothing at all, but this is akin to sighted person with zero blindness experience testing the effectiveness of a newly designed white cane, only a website is much more complicated.

You should always find someone with personal experience to test it themselves and provide feedback if you want a clear understanding of how it will actually work for that community.

Even if someone with personal experience is better I would still highly recommend testing these tools as it's not always clear how they work if you haven never used them.

I was really surprised the first time I tested one of these tools and now I know a few dos and don'ts when developing web apps.

>> Use blind accessibility tools with your website. If you're on iOS/macOS enable VoiceOver, figure out how it works, close your eyes and use your website.

> I doubt this is going to be very effective.

You are wrong. The only way for a primarily sighted team to build accessible software is to test and iterate on accessibility as part of day-in, day-out development practices. Think of it the same as localization for RTL languages or cross-browser testing: you should test in each environment you support before merging a change. Training and user-testing with blind community are important, but it doesn’t take a native Arabic speaker to notice broken layout in Arabic, nor does it take an Android device owner to notice usability problems in Android Chrome.

The best front-end engineers I know all have a VoiceOver hotkey on their dev machines and phones, and I regularly see them testing sites they visit for keyboard navigation, focus management, and VoiceOver usability.

I agree that you should find someone who is blind to test your site for problems that a blind person will encounter, however I think you are wrong about a website being more complicated than a white cane - or rather it is not a white cane one tests, it is the accessibility of the world around you with that cane, and the world around you is more complicated to understand with a white cane than a website with voiceover turned on.

With voiceover it will very quickly let you know if you have something important for the user to get to that either takes too long to get to, or is not accessible at all. Voiceover is a useful tool at the development stage, after you have your near MVP then please get someone with personal experience to give it a full test.

The metaphor is slightly off-the-mark. Testing a fancy new white cane would be like testing the accessibility tool itself. If you are developing that, then you definitely need an expert in such tools (probably a blind person).

However, developing the site is more akin to developing... a hallway? You can test whether blind people can navigate your hallway by closing your eyes and walking down it whilst using a cane. This is a bit easier- you just need to make sure there aren't obvious pitfalls and dangerous obstacles, maybe that there's braille on the doors etc.

Having an actual blind person helping you out in the second case is obviously preferable, but if you cannot, I think most blind people would appreciate you putting in the effort and at least trying to make it accessible, as opposed to the alternative of not caring at all. A lot of accessibility is standardized and there are guides to follow. It can sometimes be tricky, to be sure, but it's doable.

I'm lucky enough to have a low-vision person who works as a tester on my team, and does our accessibility testing. It's very impressive watching/listening to him use a screen reader - I was really amazed at how fast he has it set to read the screen.

He does suggest all the things you've mentioned above, and it's good advice.

However one thing he also says is: don't assume that low-vision is the only type of disability. You also need to build software for people who are: deaf, have slow motor skills (e.g. avoid putting strict time limits on user actions, or making things jump around on the screen too much while people are trying to hit a target), lack fine motor skills (e.g. don't make a target too small), etc.

> However one thing he also says is: don't assume that low-vision is the only type of disability. You also need to build software for people who are: deaf, have slow motor skills (e.g. avoid putting strict time limits on user actions, or making things jump around on the screen too much while people are trying to hit a target), lack fine motor skills (e.g. don't make a target too small), etc.

These are also good UX guidelines in general.

I had the same reaction when watching blind YouTubers show how they use VoiceOver. It was so fast I couldn't understand or follow along.

A good takeaway was feeling their frustration with improperly labeled items. You want to order keywords first, for instance "March 25, created on" instead of "Created on March 25", because they have to wait through "Created on:" dozens of times, when they already know the label context.

Good points on the other accessibility areas.

Interesting that the en-GB pattern of naming dates ("25 March", not "March 25") would make it that much more efficient, but I imagine that's culturally unacceptable to the average US citizen?
+ see if browser's readability function works (for long-read pages)
Does anyone else find this to be incredibly inconsistent between browsers? Edge is probably the best, surprisingly. Safari is the worst, it sometimes ignores entire sections of an article, regardless of using correct semantic markup.

I basically gave up on this, and just focus on using the appropriate semantic HTML tags, it's not my problem if a browser mangles it.

> - Disable JavaScript and use your website. This may not be relevant for web apps, but regular websites should work normally.

I'm not sure how this is related to accessibility? Are there tools for visually impaired people that don't work well with JS?

Traditionally screen readers didn't. I'm not sure if that's still the case.

However, with no JavaScript (and modern css) you can't change the randomly after load to indicate state, which may be difficult for a screen readers to get that back to a blind person.

It's less critical now that browsers have standardized on the ARIA interface so it's more likely that JS sites will work, as long as you use ARIA correctly, but also note that many users are on older combinations — e.g. JAWS on IE11 is still fairly common — and you have no easy way to measure screen-reader activity so it's hard to tell whether, say, the 5% of your old IE traffic is a high percentage of your screen reader users.

The other challenge is that many JavaScript-heavy sites have horrible fallback mechanisms and you would want to test to make sure that at least someone with a screen reader would have an idea of why they're not hearing any content.

That's a nice checklist. I'd like to add "Test with a console browser" too. If the site is usable in Links2/Lynx/w3m then it will most likely work for everyone.
Many sites break at moderate zoom levels.
- If you have little time and money, use any of the automated tools mentioned in the other comments

- If you want the best results, do extensive user testing

- If you are somewhere in the middle, do manual testing yourself. Simply turning on a screen reader and covering the screen with a sheet of paper does wonders.

- Think about accessibility from the start, even before you write the first line of code (just like with security). It is very hard to fix it after the fact.

You can use chrome dev tools. Right click the window and click 'inspect'. In the 'Audits' tab, you can run an audit for accessibility. It runs your website and checks it against common accessibility criteria, giving you a score out of 100.

On a side note, running this page through the accessibility audit, gives a score of 33. Perhaps HN has some work to do on accessibility.

HN it's very obviously bad for accessibility, small click/touch targets, grey-on-grey text with v. low contrast in some situations (by design), poor indent-level visibility. Using 'shade of grey' to convey information is never going to be great.

Table-based layout can screw up screen-readers, I assume it's still 'tabulated but non-tabular'. Way back screen-readers used to assume the first tr contained th even if it wasn't marked up that way.

It would be interesting to hear from people who use assistive tech for HN how much of a problem it causes them in practice.

> It would be interesting to hear from people who use assistive tech for HN how much of a problem it causes them in practice.

I use a screen reader and am a frequent reader of HN. Obviously, much of the site's content is textual - you can't include images in comments AFAIK and it's extremely rare for people to link to graphical content as people often do on Reddit. So from that point of view, the site is an oasis away from the often visual nature of the modern web. On the other hand, there is absolutely no way for my screen reader to gauge whether a comment is a child of another, quickly jump past a child thread that I'm not interested in, quickly move up to the parent or grandparent of the current comment, etc.

TL;DR: the content is accessible because it's text, but accessible navigation is non-existent.

You've received a lot of recommendations for software, but one of the most important things to bear in mind is that software cannot ensure accessibility. It can discover some problems with accessibility, but it has a lot of blind spots. If you care about accessibility, you need to incorporate manual human testing. This is a highly specialised field. The best thing for you to do is to fix the low-hanging fruit by plugging automated tools into your CI system, then get an expert to do a manual test so that you're aware of what other issues there are.
Switch the language option if one exists and try using the website in a language you don't understand. Has helped immensely for my side projects in improving UI clarity and ease of navigation.
For automated testing, try pa11y[0] or Lighthouse (intergrated in Chrome, using web.dev or as a standalone NPM package - (it uses axe-core under the hood)).

Tools will only get you so far, though. To make your site fully accessible, you will need to actually test it yourself. Luckily, most issues can be solved/prevented by following some simple guidelines [1].

Recently, I've reviewed the accessibility of 21 popular CSS UI frameworks [2], so this might be also helpful to you.

[0] - http://pa11y.org/

[1] - https://moritzgiessmann.de/accessibility-cheatsheet/

[2] - https://darekkay.com/blog/accessible-ui-frameworks/

(comment deleted)
Ask me to look at it: 39 days ago, on this very site, I learned that I am what is called by cognoscenti a "breaker": https://news.ycombinator.com/item?id=19153810
I have this, but with typos. Give me a page full of text with a single typo, and somehow, against all odds, I'll immediately spot it.
Too bad copyreaders are a dying profession 'cause you'd be a natural.
Eh, it's not like I crave copyreading. So I don't mind being automated away by spell checkers in that department.
FWIW,since the Washington Post effectively fired all its copyreaders, there have been significantly more errors, as noticed by this close reader/subscriber.
Me too! I just got an email from Cory Doctorow re: a typo I found in his article. It"s my only super power