Problem/Motivation
The Blog Canvas page banner heading in content/canvas_page/02-blog.yml omits the level input:
component_id: sdc.vartheme_bs5.heading inputs: heading_text: Blog text_color: text-white text_size: display-2
The vartheme_bs5:heading SDC declares level with default: 3, so the omission silently renders the banner title as an h3 carrying display-2 text-white. The page therefore has no h1 at all, while looking correct because display-2 supplies the visual size.
It is the only one of the five shipped Canvas pages missing a level 1 heading:
| File | Heading levels |
|---|---|
| 01-home.yml | 1, 2, 2, 3 |
| 02-blog.yml | none, 2, 2, 3 |
| 03-contact-us.yml | 1, 2, 3, 2 |
| 04-about-varbase.yml | 1, 2, 2, 2 |
| 05-features.yml | 1, 2, 2, 3 |
Affects WCAG 2.4.6 Headings and Labels and 1.3.1 Info and Relationships.
Issue #3621200 covered the same class of problem and is Closed (fixed), but the Blog page heading still omits level on 1.0.x-dev.
Steps to reproduce
- Install Varbase Starter 1.0.x-dev on a Drupal CMS base.
- Visit /blog as an anonymous user, with no session cookie.
- Inspect the banner title, or run axe-core over the page.
The banner title is a level 3 heading and the page has no level 1 heading. Audited anonymously with axe-core 4.10.2 on a fresh install: /blog was the only content page failing page-has-heading-one. axe tags that rule as best practice, so a WCAG-tag-only run does not surface it.
Proposed resolution
Add level: 1 to that heading inputs. The SDC keeps semantic level and visual size separate (text_size is documented as "Optional Bootstrap typography utility. Leave empty to match the selected heading level"), so display-2 stays and nothing changes visually.
Verified on a fresh install from the patched recipe: the banner renders as a level 1 heading at 48px, identical appearance, and the page reports exactly one h1.
Out of scope: a heading component that silently defaults to level 3 will keep producing this class of defect. Changing that default would alter every existing page that omits level, across all site templates, so it is a separate decision and is not proposed here.
Remaining tasks
- ✅ File an issue
- ❌ Addition/Change/Update/Fix
- ❌ Testing to ensure no regression
- ➖ Automated unit/functional testing coverage
- ➖ Developer Documentation support
- ➖ User Guide Documentation support
- ➖ UX/UI designer responsibilities
- ❌ Accessibility and Readability
- ❌ Reviewed by a human
- ❌ Code review by maintainers
- ❌ Full testing and approval
- ❌ Credit contributors
- ❌ Review with the product owner
- ❌ Update Release Notes
- ❌ Release
User interface changes
- None. The banner keeps the same size and colour.
API changes
- N/A
Data model changes
- N/A
Release notes snippet
- The Blog page banner title is now a level 1 heading, so the page has one h1. No visual change.
AI-Generated: Yes
Issue fork varbase_starter-3625191
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
rajab natshahComment #5
rajab natshah