There are two aspects here
- Do headings help in accessibility : Yes, this is because people with disablites who use screen readers or assertive tools can use shortcuts to quickly jump to headings while scanning content to get an idea of a look and feel of the site and decide on what to read.To quote this webaim article
When encountering a lengthy web page, sighted users often scroll the
page quickly and look for big, bold text (headings) to get an idea of
the structure and content of the page. Screen reader and other
assistive technology users also have the ability to navigate web pages
by heading structure, assuming true headings are used (as opposed to
text that is styled to be big and/or bold). This means that the user
can view a list of all of the headings on the page, or can read or
jump by headings, or even navigate directly to top level headings
(), next level headings (), third level headings (), and
- Should I always include a h1 tag : Not necessary since the main goal of the the H1 tag is to help you establish that this is the primary heading and all other content that follows is secondary content. That said, you can potentially use an H2 tag as a primary heading but do be mindful that any content below it is of the lower hierarchy i.e h3,h4,h5 and h6 so that users using assertive technologies can make the connection. This accessiblity article has this to say
Accessible Use of H2 tag for headers In this example the H2 tag has been used and has been styled so that it is automatically navy.
Topic 1 (example) Content
Topic 2 (example) Content
A screen reader set to a scanning mode would list "Topic 1" then
Coming to your comment below, the screen reader would read the title as
Screen readers announce the page title (the attribute in the
HTML markup) when first loading a web page.
So in that case, having the same title repeated again a H1 tag would be redundant as you are basically repeating the same content and could cause confusion to users about whether there is a section which has the same title as the page title.
That said, I recommend reading this interesting article "The Truth About Multiple H1 Tags in the HTML5 Era" about how HTML 5 can help alleviate the H1 tag problem. That said, please ensure your user base has browsers who do support HTML5 content before you for this approach