Issue #129 · standard
The twitter:image:alt meta tag provides alternative text for your Twitter Card image.
What is this issue?
The twitter:image:alt meta tag provides alternative text for your Twitter Card image. This describes the image content for accessibility tools and displays when the image cannot be loaded on X (Twitter).
This issue checks whether your page has the twitter:image:alt tag implemented. A passing implementation must include:
twitter:image:alt- A descriptive text alternative for the Twitter Card image
Example of passing implementation:
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://example.com/team-photo.jpg" />
<meta
name="twitter:image:alt"
content="Our team of 10 engineers working on laptops in a modern office"
/>
Why does it matter?
The twitter:image:alt tag is important for accessibility and social media sharing on X:
- Accessibility: Screen readers and assistive technologies can describe the image to visually impaired users on X
- Fallback content: Displays when images fail to load due to network issues or blocking
- Context: Provides additional context about the image content
- AI Search / AEO: AI systems use alt text to understand image content and relevance
- X platform: X may use alt text for accessibility features
Without the twitter:image:alt tag:
- Images are inaccessible to visually impaired X users
- No context is provided if images don't load on X
- Missed opportunity for additional content description
Resolving this issue improves accessibility on X and contributes to a higher overall SEO health score by making your social sharing more inclusive.
How to fix it
-
Add the
twitter:image:alttag to your HTML<head>section:- Place it after the
twitter:imagetag - Write descriptive text that conveys the image's content and purpose
- Keep it concise but informative (under 100 characters recommended)
- Place it after the
-
Write good alt text:
- Describe what's in the image objectively
- Include relevant context (people, objects, setting, action)
- Avoid starting with "Image of..." or "Picture of..."
- Don't repeat the
twitter:descriptionverbatim
-
Test your implementation:
- Use X Card Validator to verify alt text is detected
- Check accessibility with screen reader tools
- Ensure alt text displays appropriately when images don't load
Examples
Example 1: Missing Twitter Image Alt
Problematic state (what fails):
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://example.com/team-photo.jpg" />
<!-- Missing twitter:image:alt tag -->
Corrected state (what passes):
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://example.com/team-photo.jpg" />
<meta
name="twitter:image:alt"
content="Our team of 10 engineers working on laptops in a modern office"
/>
Example 2: Poor Alt Text
Problematic state (what fails):
<meta name="twitter:image:alt" content="Image" />
<!-- Too vague, not descriptive -->
Corrected state (what passes):
<meta
name="twitter:image:alt"
content="Diverse team of engineers collaborating on code reviews around a whiteboard"
/>
Example 3: Alt Text Repeating Description
Problematic state (what fails):
<meta name="twitter:description" content="Learn SEO best practices for 2024" />
<meta name="twitter:image:alt" content="Learn SEO best practices for 2024" />
<!-- Alt text just repeats description -->
Corrected state (what passes):
<meta name="twitter:description" content="Learn SEO best practices for 2024" />
<meta
name="twitter:image:alt"
content="Infographic showing SEO checklist with checkmarks on clipboard"
/>
How PixyScan detects this
PixyScan checks for the twitter:image:alt tag by:
- Fetching the page HTML after following all redirects
- Parsing the
<head>section to extract the meta tag withname="twitter:image:alt" - Validating presence: Checks that the
twitter:image:alttag exists - Validating content: Ensures the tag has a non-empty, meaningful value
- Flagging the issue if the tag is missing or empty
The detection is performed on the raw HTML response without JavaScript execution, matching how X's crawler sees your pages.