A table-of-contents link jumps to the intended section, but the heading disappears under a fixed header. The target exists; the available visible area was not properly accounted for.
Test a specific anchor link with pointer and keyboard. Observe both heading and focus indication afterward. Record the header height in that state.
Reserve space at the destination
One possible CSS setting is:
section[id] {
scroll-margin-top: 6rem;
}
This value is illustrative and must match the measured header. A multi-row mobile navigation may need different clearance from desktop. Also account for headers that change as the page scrolls.
Inspect short and long headings, then increase text size. Fixed pixel values may become insufficient. Include overlapping header or consent states in the inspection.
Distinguish scrolling from keyboard focus. A visually correct destination does not prove where keyboard interaction continues. Check subsequent Tab movement and browser Back behaviour.
Prefer native links with meaningful destination identifiers unless a special interaction requires more. This lets you check clearance without adding a scrolling effect. Record tested header states so future navigation changes do not reintroduce the issue.