`components/ui/Frame.tsx:22` hard-codes `aria-labelledby={`${id}-h`}`. Every existing consumer pairs an element with the matching `${id}-h` id:
- Hero → `intro-h`
- Method → `method-h`
- Faq → `faq-h`
- Comparison → `compare-h`
- Close → `contact-h`
The two routes added in #61 break that contract:
- `app/blog/page.tsx:46` declares `<Frame id="blog">` but the `
` at `:54` has no `id`
- `app/blog/[slug]/page.tsx:64` declares `<Frame id="post">` but the `
` at `:75` has no `id`
Screen readers will announce each section as unnamed because the referenced id doesn't exist in the DOM.
Fix
```diff
```
```diff
```
Found during PR review of #61.
`components/ui/Frame.tsx:22` hard-codes `aria-labelledby={`${id}-h`}`. Every existing consumer pairs an element with the matching `${id}-h` id:
The two routes added in #61 break that contract:
` at `:54` has no `id`
` at `:75` has no `id`
Screen readers will announce each section as unnamed because the referenced id doesn't exist in the DOM.
Fix
```diff
Blog
Blog
```
```diff
{post.title}
{post.title}
```
Found during PR review of #61.