Headings aren’t only about SEO but also accessibility stuff.
Screen readers can hop from one heading to another, and we can specify the header depth with keyboard shortcuts.
Topics have their <h1> titles, but every reply is prepended by its own hidden <h2>, visible with screen readers:
<h2 aria-hidden="false" class="sr-only" id="post-heading-9">
post by Jagster 4 hours ago
</h2>
So, in any case, when you post a <h1> or a <h2> heading in your content, it will always be a descendant of a pre-existing <h2> ![]()
I’d say that, using headings above <h3> in a post might make screen-reading navigation a bit weird.
While it’s not consistent among existing topics, the post template from Customization > Plugin uses <h3> as top headings:
| | | |
| - | - | - |
| :information_source: | **Summary** | In a few words, what does this plugin do? |
| :hammer_and_wrench: | **Repository Link** | <> |
| :open_book: | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |
<br>
### Features
Describe the major features of the plugin
### Configuration
Include detailed steps on how to configure the plugin (include screenshots where necessary)
### Settings
Include a table of settings and setting descriptions
| Name | Description
|-|-|
|
Interestingly, this is not the case for Customization > Theme and Customization > Theme component templates, but their template contain no headings. Perhaps this should be changed.