Accessibility
Micropage was built by a visually impaired developer, around text and the keyboard instead of a visual canvas. This page lists what every published site gets, what you control in your .page file, and what Micropage doesn't check.
What every published page includes
- Language:
<html lang>comes fromlang:in[site]or the page's meta, and defaults toen. - Skip link: the first focusable element is a "Skip to content" link that jumps past the navigation.
- Landmarks: a labelled
<nav>, a<main>and a<footer>. - Headings: an
h2:line stays an<h2>wherever it sits. Sizing never changes the level, so the page outline is the one you wrote. - Keyboard focus: buttons, nav links and post links show a visible focus state. The mobile menu toggle reports whether it is open.
- Dark mode: pages follow the visitor's system setting.
Color and contrast
Text on a theme color is picked for you. When you set a color, text on sections with that background comes out #ffffff or #111111, whichever has more contrast by the WCAG formula. Buttons and muted text follow. See Site Colors for the exact rules.
For example, with this in [site], the section below gets white text because the primary is dark:
[site]
colors:
primary: #b5441b
[Home -> /]
/// section bg:primary
h2: White text, without asking for it
Images
The words before <- become the image's alt text, so describing the picture is how you add one:
img: Our team at the meetup <- team.jpg
See Images for the other forms.
Forms
- Every field has a
<label>linked to it. - Required fields use the
requiredattribute. The asterisk is hidden from screen readers, and a plain-text key explains it. checkboxesandradiosannounce their group label with their options.- Errors and the success message are announced when they appear.
See Forms.
Tables
Header cells use scope="col", table: text becomes a <caption>, and a table that scrolls sideways can be focused and scrolled with the keyboard.
What Micropage doesn't check
- Missing alt text: an image with no words before
<-is published with an empty alt, and nothing warns you yet. - Whole-page contrast: text colors are picked for theme colors, but custom colors in a
/// htmlblock and fixedtext:lightortext:darkare yours to check. - Raw HTML: anything inside a
/// htmlblock is published as you wrote it.