SpeakableSpecification is a Schema.org markup type that lets publishers explicitly mark which sections of a page are meant to be read aloud or cited by AI systems — the parts of the content worth surfacing in a voice summary or an AI-generated answer. As AI-generated search responses and voice interfaces become standard discovery channels, that kind of explicit signal is what tells those systems which parts of a page are actually worth citing.
How SpeakableSpecification is implemented
SpeakableSpecification sits within the broader Article schema and is implemented as JSON-LD structured data in the page <head>, using CSS selectors or XPath expressions to point to specific content sections:
{
"@context": "https://schema.org/",
"@type": "Article",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-intro", ".key-takeaways", "h2"]
},
"url": "https://example.com/accessibility-guide"
}The referenced sections are the ones AI systems will prioritize when generating a voice summary or a text excerpt from the page.
Why it matters for accessibility and GEO
SpeakableSpecification connects accessibility and generative engine optimization (GEO) at a technical level — the same content decisions help both.
Content marked as speakable should be the clearest, most useful content on the page. That’s also what makes it work for screen reader users: short, specific sentences, no vague pronouns, and context that doesn’t rely on seeing the page.
For GEO, this markup tells AI crawlers exactly where your best content lives. Pages that mark it accurately are more likely to be quoted correctly in AI-generated responses, since the publisher has already flagged what’s worth citing.
Implementation guidance
SpeakableSpecification works best on content that stands on its own: news articles, reference guides, glossary entries, FAQ pages, and structured reports.
A few best practices: pick sections that make sense without extra context, that answer one clear question, and keep them short — 200 to 500 words. Update selectors whenever the page structure changes; a selector pointing to content that no longer exists hurts the signal instead of helping it.