Engineering

Semantic HTML, accessibility, and SEO: practical overlap

Use semantic HTML to clarify page structure, links, images, and forms. Learn where accessibility and SEO overlap and how to test real user journeys.

Apex Labs / / 5 min read

Semantic HTML uses elements that describe the purpose of content and controls. It gives browsers and assistive technology a clearer structure to work with, and it can also make content and links easier for search systems to interpret. Build it because people need a usable page; do not promise a ranking increase for changing a tag.

Start with the document's reading structure

A visually polished page can still be difficult to navigate when everything is a generic container. Identify the primary content, navigation, supporting content, and page footer. Then choose elements that describe those roles instead of choosing markup solely for styling convenience.

W3C's page structure guidance recommends meaningful regions and logically nested headings. This helps people using screen readers move to the sections they need. It also gives the page an outline that developers and editors can inspect independently of the visual layout.

Use a clear page title and headings that describe each section's content. Do not select a heading level because its default font size looks right. Define typography in the design system and document hierarchy in the content model.

Review the mobile and desktop reading order. A CSS layout can move a card visually while leaving its source order elsewhere. Check that the underlying order still makes sense when content is read linearly.

A destination should be represented by a link. A control that performs an action, such as opening a menu or submitting a form, should use an appropriate native control. This makes the interaction easier to understand and reduces the amount of custom behavior a team has to recreate.

Google's link guidance specifically recommends anchors with href destinations for crawlability. A clickable container whose only navigation logic lives in an event handler does not offer the same direct URL. Check custom cards and menu components, which often conceal this distinction behind a polished appearance.

Write link text that identifies the destination. In a list of articles, the article title is more useful than several repeated links that say only “read more.” If a link opens a document, include enough context for someone to decide if that is the next step they want.

Review overlapping actions inside cards. A whole-card link, a nested bookmark control, and another link can create confusing interaction rules. Simplify the component's behavior before attempting to patch it with event propagation exceptions.

Give images alternatives based on purpose

W3C distinguishes informative, decorative, and functional images. Informative images need text that communicates their essential information. Decorative images can use an empty alternative. A functional image needs an alternative that describes the action or destination.

Apply that decision to the actual context. A photograph of an office may illustrate a particular available space, or it may simply decorate a general company page. Those uses do not necessarily need the same text.

Avoid using alternative text as a container for service keywords. Describe what matters to understanding the page. A screen reader user should not have to listen to an advertising sentence attached to every image.

Complex charts need more than a brief label. Explain the main finding in surrounding prose and provide a text equivalent for the information required to understand the chart. This also makes the article more useful when the image cannot load or is viewed on a small screen.

Build forms people can finish

Associate each form control with a meaningful label. W3C's forms tutorial explains explicit label associations and why labels help assistive technology identify controls. A placeholder is a poor place for the only instruction because it disappears as someone types.

Keep instructions close to the field they explain. State required formats before submission when they are necessary. If a request fails, preserve the entered information where practical and explain how the person can recover.

Review errors as a journey rather than a red border. Someone should know which field needs attention and what correction is expected. Avoid an unexplained generic failure when the application already knows that a required service location is missing.

Test the full enquiry path with a keyboard. Reach the form, enter values, make an error, correct it, and submit successfully. This reveals problems that a visual scan cannot show, including focus moving to an unexpected place or feedback appearing outside the current context.

Understand the SEO overlap accurately

Clear headings help describe a page. Real links expose destinations. Useful image alternatives explain information conveyed by images. These are practical overlaps between accessible content and search-friendly content, but they are not a formula for guaranteed rankings.

Accessibility also covers needs that should not be justified through SEO. Keyboard access, understandable errors, readable contrast, and focus behavior matter because people need to use the product. A crawler accepting the page is not evidence that those people can complete a task.

Similarly, valid markup does not resolve JavaScript delivery problems. A well-structured article that appears only after an inaccessible content request still has a delivery issue. Review structure and content availability as related but separate concerns.

Turn component choices into repeatable standards

Document the expected behavior of shared navigation, cards, accordions, dialogs, and forms. Include the semantic element, accessible name, keyboard interaction, and focus behavior relevant to each component. This gives implementation reviews concrete questions to answer.

Let editors preview heading structure and alternative text in the CMS. Technical correctness is easier to preserve when content tools reveal the information editors are responsible for. A component library alone cannot prevent a badly ordered article outline.

When changing a shared component, review representative pages that use it. A card fix can affect a services grid, an article listing, and a related-content section in different ways. Avoid assuming that a successful isolated preview proves every context works.

Verify a real public page

Use automated checks to catch detectable issues, then do manual reading and interaction checks. Inspect the heading outline, navigate by keyboard, review the accessibility tree, and try the primary task with a screen reader where possible. Record limitations instead of treating a clean automated report as full conformance.

Repeat the check on a small screen and after errors or dynamic updates. Include the results in the SEO release checklist, alongside performance checks. A useful page should remain understandable and operable throughout the journey.

References

  • html
  • accessibility
  • seo
  • frontend