Body text size
type:Smallest body text is 12px (base ~12px). below the ~16px readable floor.
FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.
saas · Aug 9, 2026
35/100 Sparse
Scores higher than 25% of 1,391 multi-step funnels we have measured. Among the 1,074 saas funnels in that group, higher than 15%.
Measured by Roentgen 1.20.1 on 2026-08-09. A capture is read once and its measurements freeze there, so the stamp says which ruleset read this one.
Coverage is detection coverage, not a verdict — it counts the conversion tactics we could prove are present, out of the 11 that apply to a saas funnel. Per device: desktop 35 · mobile 35.
Walk 84 links on the entry page, 73 walkable. 2 matched a funnel step; we captured 3 pages in all, this one included.
see their whole funnel without clicking through it. scored step by step
measuredextracted directly from the live page. a fact, not an opinionthe entry page’s own title, headline, buttons and prices — quoted, never paraphrased
measuredextracted directly from the live page. a fact, not an opinionAbout Mermaid | Mermaid
Create diagrams and visualizations using text and code.
About Mermaid
What are you looking for?
📔 Introduction
📊 Diagram Syntax
📚 Ecosystem
⚙️ Deployment and Configuration
🙌 Contributing
📰 Latest News
Diagram Types +8 more, not shown
Just exploring, skip for now
Search Ctrl K
11.16.1
Get started
Ctrl + Enter | Run ▶
Run ▶
Edit this page on GitHub
conversion tactics we could prove are present, with the on-page text that evidences each
measuredextracted directly from the live page. a fact, not an opinionStart free
documentation
logos: Mermaid, Build CI Status, NPM, Coverage Status, CDN Status
applicable tactics we checked for and did not see on any step we reached
measuredextracted directly from the live page. a fact, not an opinionAbsence is a measurement, not a recommendation: we do not know why a tactic is missing, whether it belongs here, or whether adding it would change anything. Where a walk stopped early, a tactic living deeper would also read as not detected.
contrast, mobile, typography, accessibility, weight — each with what would fix it
measuredextracted directly from the live page. a fact, not an opinion6 of 13 measured checks need work1 could not be measured — not counted either way
92% of measurable text passes WCAG AA. 4+ runs fail.
worst: “Start” at 1.61:1 (16px, #cccccc on #ffffff). needs 4.5:1
FixRaise text/background contrast to ≥4.5:1 (≥3:1 for large text), especially on CTAs and body copy.
Smallest body text is 12px (base ~12px). below the ~16px readable floor.
FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.
Body line-height is 1.2×. tight enough to hurt readability.
FixSet body line-height to ~1.4-1.6×.
4 buttons/links have no accessible name (icon-only, no aria-label).
FixAdd aria-label to icon-only buttons and links.
7 images are shipped at more than 2x the width shown.
“book-banner-post-release.DBlRGW2R.jpg” is 2560px wide, displayed at 688px
FixServe responsive sizes (srcset/sizes) matching the rendered width.
32 of 407 interactive targets are under 44×44px on mobile.
smallest: “Skip to content” at 32×16px
FixGive tappable controls a ≥44×44px hit area. the touch minimum.
6 paragraphs run past ~95 characters per line.
FixCap measure at ~60-75ch for comfortable reading.
type:12 headings skip a level (e.g. <h2> followed by <h4>). Screen-reader users navigate by this outline.
FixStep heading levels one at a time; use CSS for size, not a deeper level.
a11y:3 controls have an aria-label that does not contain its visible text, so voice-control users cannot activate it by saying what they see.
FixMake the accessible name start with the visible label text.
a11y:At least 2.6 MB across 77 measurable resources, but 115 cross-origin resources did not expose a size. The true weight cannot be determined from the page.
weight:Mobile viewport · Language declared · Image alt text · Render-blocking resources
palette by on-page usage · type rendered live
measuredextracted directly from the live page. a fact, not an opinionBody copy in their text role, on a surface card.
Body copy set at their measured paragraph size. This is how their product reads to a first-time visitor. same family, same scale, same weight.
layers we ran on this funnel that came back empty
measuredextracted directly from the live page. a fact, not an opinionSections — structural bands identified on this funnel, cropped from its own capture
Elements — the atomic pieces — price anchors, ratings, guarantees — with their verbatim on-page text
Playbook match — which funnel play this page runs — measured, evidence-quoted
We ran these passes on the pages we captured and found nothing to show. That is a measurement of this funnel, not a recommendation — and it is a different statement from a layer we never ran, which does not appear here at all.