Substack has become the default platform for independent writers, journalists, and creators publishing subscriber-funded newsletters. What started as a simple email newsletter tool has grown into a full publication platform with web archives, paid subscriptions, podcasts, threads, notes, and community features. For many writers, a Substack is their primary professional website, meaning its accessibility directly affects who can read their work, subscribe, and participate in the community. The platform handles many technical concerns for writers, but this convenience comes with accessibility trade-offs. Substack's post editor prioritizes simplicity over structural controls, meaning writers often unknowingly produce posts with improper heading hierarchy, missing image alt text, and inconsistent link patterns. Email rendering is a separate concern entirely: messages sent from Substack are read in dozens of email clients that each handle accessibility differently, and newsletter authors have limited control over the final rendering. Paid Substacks also carry specific accessibility obligations around subscribe and checkout flows, especially for EU readers under the European Accessibility Act's digital services requirements. In the United States, accessibility complaints against creator-led publications are still uncommon but precedent from larger publishers suggests they will grow. This checklist focuses on what a Substack author can actually control and fix, and flags the platform-level issues that are worth raising with Substack support or documenting in an accessibility statement. Issues are prioritized from critical to moderate, focused on practical actions an individual writer can take.

Common Accessibility Issues

critical

Images Embedded Without Alt Text or Captions

WCAG 1.1.1

Substack's post editor inserts images through a drag-and-drop or image-picker flow that does not prompt for alt text by default. Images used as hero visuals, inline figures, charts, screenshots, or meme-style reactions frequently ship without alt attributes. For data-driven or visual essay-style posts where images carry significant meaning, this omission makes large portions of the content invisible to screen reader users and reduces image search discoverability.

How to fix:

After uploading or embedding an image, click on it in the editor and look for the alt text or 'ALT' input (sometimes located inline, sometimes in an image properties panel). Write a sentence that conveys what the image communicates: for a chart, describe the trend or data point that matters; for a screenshot, describe the interface and the action depicted; for a meme or illustration, describe the visual and tone. For images that are already in the final Substack HTML without alt text, consider adding a visible caption underneath that describes the image as a fallback.

critical

Heading Hierarchy Skips Levels in Long-Form Posts

WCAG 1.3.1

Substack's editor typically exposes Heading 1 (the post title), Heading 2, and Heading 3 only. Writers often use Heading 3 for minor divisions and skip Heading 2 entirely, or use bold paragraph text as a visual heading. For long-form essays and research-heavy posts, this breaks the document outline that screen reader users depend on to skim content and jump between sections.

How to fix:

Reserve Heading 1 for the post title (which Substack assigns automatically). Use Heading 2 for the main sections of your post, and Heading 3 for subsections within those sections. Avoid using bold paragraph text as a heading substitute — screen readers will not announce it as a heading. If your post is naturally short (under 500 words), a heading structure may not be needed at all; do not add headings just to break up text visually, use them only for real structural divisions.

serious

Subscribe Forms and Paywalls Have Low Contrast Buttons

WCAG 1.4.3

Substack publications allow writers to customize brand colors for subscribe buttons, paywall CTAs, and accent elements. Writers who pick brand colors based on aesthetic preference rather than contrast testing often end up with button text that fails the 4.5:1 minimum contrast ratio, particularly with pastel, neon, or highly saturated brand palettes.

How to fix:

Open your Substack publication settings and locate the brand/theme color options. For each color you have selected, test the button text against the button background using a contrast checker such as WebAIM's. If the ratio is below 4.5:1 for normal-size button text, pick a darker or more saturated variant of your brand color. Verify that hover and focus states also meet the ratio. Consider creating two versions of your brand color: one for large display use and a higher-contrast variant for small text on buttons and labels.

serious

Link Text Uses Ambiguous Phrasing

WCAG 2.4.4

Newsletter writing style often encourages conversational links with anchor text like 'here', 'this', 'read more', or 'check it out'. Screen reader users who pull up a list of links on a page hear these phrases repeated with no indication of where each leads. In a post with 20 inline links, the link list becomes useless as a navigation aid.

How to fix:

Rewrite link text to describe the destination or the action. Instead of 'you can read more about this study here', write 'you can read the 2026 Pew study on remote work'. Highlight the noun phrase that identifies the destination, not the verb. For cases where the surrounding sentence would become awkward, add an aria-label via a raw HTML block (available on some plans), though restructuring the sentence is usually preferable.

serious

Video and Audio Embeds Missing Captions or Transcripts

WCAG 1.2.2

Substack supports embedding YouTube videos, Vimeo videos, and podcast episodes inline. Embedded video relies on the host platform's captions, which may not exist or may be auto-generated with errors. Substack's own podcast feature does not automatically transcribe episodes as of early 2026. Deaf and hard-of-hearing subscribers miss the content entirely, and everyone loses the ability to skim or search the audio.

How to fix:

For embedded YouTube or Vimeo videos, confirm that accurate captions are available (either human-authored or carefully corrected auto-generated captions). For your own podcast episodes published through Substack, publish a transcript either in the post body beneath the audio player or as a downloadable document linked from the post. Third-party services like Descript, Otter.ai, or Riverside can generate reasonably accurate transcripts that you can proof and paste in under an hour per hour of audio.

moderate

Comment Threads Announce Poorly With Screen Readers

WCAG 1.3.1

Substack's comment section renders as nested divs with avatar images, author names, timestamps, and reply counts. Screen readers announce the tree as a wall of disconnected text rather than as a structured threaded discussion, making it hard for screen reader users to follow conversation branches.

How to fix:

This is largely a platform-level issue that Substack needs to address in their comment component. In the meantime, set expectations with your readers by noting in your publication's About page that comment threads may be harder to follow with assistive technology and invite alternative modes of participation (emailed replies, DM responses). If you rely heavily on community discussion, consider augmenting comments with a more accessible off-platform community such as a Discord server or threaded forum.

Substack-Specific Tips

  • Substack emails render differently in every email client (Gmail, Outlook, Apple Mail, Proton Mail, etc.). Preview your post in at least two clients before sending major posts, especially any post that relies heavily on visual structure or images.
  • For paid subscribers who depend on screen readers, test the full subscribe and checkout flow yourself with VoiceOver or NVDA before promoting a paid tier. Payment friction caused by accessibility issues is a direct revenue loss, not just a compliance concern.
  • Include a short accessibility note in your Substack's About page that explains what accommodations you have made (alt text on images, transcripts for podcasts) and provides a contact method for readers to request adjustments.
  • If you cross-post to other platforms (personal website, Twitter/X threads, LinkedIn), apply the same heading structure and alt text discipline there. Your readers often experience your work across multiple surfaces.

WAVE Web Accessibility Evaluator

A free browser extension that scans your published Substack posts and highlights missing alt text, heading issues, and contrast failures. Particularly useful for auditing your publication's archive after changes to brand colors or templates.

WebAIM Contrast Checker

An online tool for checking whether your Substack brand color passes WCAG AA contrast requirements against white, dark, or custom backgrounds. Use it before finalizing your publication's brand color palette.

Descript

An audio/video transcription and editing tool useful for generating accurate transcripts of Substack podcast episodes. Supports proofreading transcripts directly before publishing them alongside your audio posts.

Further Reading

Other CMS Checklists