Build a Manual with MkDocs #6: Maintenance — Search, Accessibility, and Documentation Culture

3 min read

By the time you reach #5, you have docs equipped with multilingual support and versioning. The building stage is done. Docs aren’t something you make once and finish; they keep growing alongside the product. In this final post we cover the operations that keep those docs alive over the long run.

This series, Build a Manual with MkDocs, runs in six parts.

  • #1: From Install to Your First Doc
  • #2: nav and Search — Shaping the Information Structure of Your Docs
  • #3: Writing Content — Code Blocks, Mermaid, and Admonitions
  • #4: Deploy on Cloudflare Pages and Connect a Domain
  • #5: Multilingual Docs and Versioning
  • #6: Maintenance — Search, Accessibility, and Documentation Culture ← this post

In this post we’ll cover three things: refining search, accessibility for everyone, and the culture that keeps docs alive.

Refining Search #

As we saw in #2, Material’s search is built in, so there’s nothing extra to bolt on. That said, you can turn on a few features with theme.features to raise the reader experience further.

mkdocs.yml — enhancing search
theme:
  name: material
  features:
    - search.suggest     # Autocomplete while typing
    - search.highlight    # Highlight the query in results
    - search.share        # Share a link to search results

Search builds the index at build time and runs in the browser, so no server is required. If Korean tokenization feels lacking, apply the separator adjustment covered in #2 as well.

Accessibility for Everyone #

Docs should be readable by as many people as possible. Material has decent accessibility out of the box, but there are a few spots that break easily while you’re writing.

  • Don’t skip heading levels. You should descend one level at a time so screen readers parse the structure correctly.
Keeping heading levels in order
# Page title (h1, one per page)
## Major section (h2)
### Minor section (h3)
  • Link text should make sense on its own. Instead of “click here,” write the destination, like “installation guide.”
  • Add alt text to images. If you draw diagrams with Mermaid, they’re text, so you’re free of this problem.
  • Maintain color contrast. When you tweak Material’s color palette, check that the contrast between body text and background exceeds the WCAG AA standard (4.5:1).

The Culture That Keeps Docs Alive #

Even with good documentation tools, the moment updates stop, docs quickly become a lie. What long-lived docs have in common is not the tool but the habit.

The key is to uphold the Docs as Code that we took as our starting point in #1, all the way through. Keep the docs in the same repository as the code, and fix the related docs inside the same Pull Request that changes a feature. When you add “update the docs” to your definition of done, the code and docs drift apart less often.

A few more habits help. Surface each page’s last-modified date to make stale content easy to spot (Material’s git-revision-date plugin attaches it automatically), check for broken links at the build stage, and fix things in small increments rather than deferring big overhauls. Steady small updates keep docs alive better than one perfect cleanup.

Closing the Series #

Over six posts, we built a documentation site with MkDocs Material from scratch through to operations. We installed it (#1), shaped the structure with nav and search (#2), filled in the content with code blocks and admonitions (#3), deployed on Cloudflare Pages (#4), added multilingual support and versioning (#5), and finally arrived at keeping it alive over the long term (#6).

If a blog is a chronological collection of posts, a documentation site is a structured reference. That difference divided everything, from the choice of tool to the operational habits. Now I hope you’ll put your own team’s docs on top of this flow.

X