In the digital age, the web is a visual-first medium. However, for millions of users who rely on screen readers, the richness of the web depends entirely on the accuracy and quality of "alt text"—the hidden HTML attribute that serves as the bridge between visual content and auditory comprehension. Despite its critical role in accessibility, the current state of the internet remains starkly exclusive.
According to the 2026 WebAIM Million report, which analyzed the accessibility of the web’s most popular homepages, more than one in four images lack functional alt text. Specifically, 16.2% of images have no alt attribute at all, while another 10.8% provide descriptors that are essentially useless—ranging from raw filenames like IMG_2847.png to redundant tags such as "image" or "star icon."
To address this, GitHub has launched a new plugin for the GitHub Accessibility Scanner, designed to move beyond simple "existence" checks toward true quality assurance. By integrating large language models (LLMs) and sophisticated layout analysis, this tool represents a paradigm shift in how developers approach digital inclusion.
The Chronic Failure of Automated Linter Rules
For years, automated accessibility tools have been effective at catching "binary" failures—that is, whether an alt attribute exists in the DOM. If the attribute is present, the test passes. However, this creates a false sense of security. An image labeled alt="picture" passes a standard accessibility audit, yet it provides zero context to a blind user.
Most accessibility checkers deliberately avoid judging the quality of alt text to minimize "false positives." If a tool were to flag every vaguely worded description, developers would quickly become overwhelmed and likely disable the tool entirely. This "all or nothing" approach has left a massive gap in the web’s accessibility infrastructure.
GitHub’s new plugin aims to close this gap by distinguishing between what can be mathematically proven and what requires contextual, human-like judgment.
Proving vs. Suspecting: A Two-Tiered Strategy
The philosophy behind GitHub’s plugin is built on a clear divide: deterministic rules versus probabilistic suggestions.
The Deterministic Tier (The "Proof")
The plugin uses a set of five default, high-confidence rules that require no AI or external network calls. These rules check for objective, undeniable issues:

- Presence: Identifying missing attributes.
- Redundancy: Flagging strings that are clearly filler or generic placeholders.
- Normalization: Stripping strings of non-descriptive filler to see if any actual content remains.
Crucially, the team decided to exclude decorative images (those with alt="") from these checks. "An empty alt is the author explicitly saying the image is decorative," the team notes. "Flagging it would punish exactly the behavior you want to encourage."
The Probabilistic Tier (The "Suspicion")
For complex issues, the plugin opts into an AI-driven check. By extracting surrounding page context—including nearby headings, page titles, figcaption tags, and up to 600 characters of surrounding prose—the system can evaluate whether an image description is contextually relevant.
The Layout Challenge: Why DOM Order Fails
One of the most innovative aspects of the plugin is its move away from DOM-based analysis. Initially, the team attempted to identify repetitive alt text by scanning the document in the order elements appeared in the HTML. This led to disastrous results: a "GitHub" logo in the header and another in the footer would be flagged as a repetitive "run" of identical alt text, even though they were separated by the entire page length.
The team realized that accessibility is a visual experience, not a code-structure experience. To fix this, they implemented a layout-aware algorithm. Using bounding boxes, the plugin now calculates the spatial gap between images. If two images are visually adjacent, the system flags them for redundancy. If they are separated by significant page real estate, the system recognizes them as distinct context points.
Harnessing AI: From Critic to Reviewer
Integrating AI into an automated pipeline introduces a major risk: the "over-eager critic." Language models are trained to be helpful, meaning they often suggest changes to perfectly valid alt text simply because they are programmed to find "room for improvement."
To prevent this, GitHub implemented a rigorous "Reviewer, Not Critic" protocol:
- Consistency Filtering: They limited the model’s propensity to offer unsolicited rewrites.
- Grading Harness: They built an offline testing suite using industry-standard resources like W3C tutorials and the POET accessibility framework.
- Strict Prompting: The prompt used for the model is identical to the one used in the offline testing harness, ensuring that the AI’s judgment remains consistent between CI (Continuous Integration) environments and local development.
Privacy, Cost, and the Data Flow
Moving from a simple linter to an AI-powered scanner introduces non-trivial concerns regarding privacy and operational cost. Because the tool sends webpage data to an external model, GitHub has implemented strict data-flow design principles:
- Redaction: Sensitive data is stripped before it reaches the AI.
- Optionality: Users must explicitly enable the AI-powered components.
- Cost Management: Because model calls are expensive and slow compared to traditional linting, the team suggests running these checks on a schedule (e.g., daily) rather than on every single commit.
The team emphasizes that developers must perform their own data-flow reviews, particularly if they choose to utilize additional features like OCR (Optical Character Recognition) via Azure AI Vision, which involves sending image bytes to a third-party service.
Implications for the Future of Web Development
The launch of the GitHub Accessibility Scanner plugin highlights a growing trend in software engineering: the use of AI to solve "human" problems that were previously thought to be beyond the reach of automation.
However, the team is quick to temper expectations. There are still limitations that even the best models cannot overcome. For instance, the plugin cannot inherently know the "intent" of a complex infographic or the emotional nuance of a photograph. It cannot replace the human judgment required for high-stakes accessibility compliance.
Instead, the tool serves as a "force multiplier." By automating the detection of low-hanging fruit and providing intelligent suggestions for complex imagery, the plugin ensures that accessibility teams spend less time hunting for errors and more time solving the truly nuanced challenges of inclusive design.
The Path Forward
As the web continues to evolve, the standard for accessibility must rise with it. GitHub’s decision to open-source this plugin and share their methodology provides a blueprint for other platforms to follow.
For developers, the message is clear: stop treating accessibility as a binary pass/fail checkbox. Start treating it as a user experience metric that requires both technical precision and contextual understanding. By separating what can be proven from what can be suggested, developers can create a more inclusive web—one image at a time.
Those interested in integrating these checks into their own workflows can access the GitHub Accessibility Scanner alt-text plugin here. The team encourages community feedback, urging developers to report "false positives" or edge cases to refine the tool’s accuracy further.
Ultimately, automation cannot make a website accessible on its own, but it can ensure that the human behind the keyboard is always looking at the right things. In the pursuit of a universal web, that shift in focus is the most important step of all.






