Getting into the habit of loading up VoiceOver’s Rotor https://support.apple.com/en-gb/guide/voiceover/mchlp2719/mac to check a page’s landmarks, headings, and links. Using semantic markup was a good idea all along.
The main gotchas I’ve found are multiple <main> elements, incorrect heading levels (not a strict <h1> <h2> etc. order), and links with poor text (e.g. “0” for comments, “Browse”, “Download”, etc. without further context). It helps to use aria-describedby to connect form inputs to their errors and hints too.