AI Readiness Assessment
64 judgements need a named person in the organisation to confirm, because they turn on what you know to be true rather than anything measurement can settle: whether a claim is supported, whether a page is still current, which of two versions is the one to quote. In order, they cover: who is answerable for this content; is it still true today; can each claim be backed; does our published content agree; will the right meaning come across; can someone reach it and act on it. An answer recorded against each, with a name and a date, is what turns published content into governed content.
Once the foundations are sound and the content is governed, the visibility stage measures how AI systems and agents actually find the estate: which pages they reach, how often, and how the organisation is represented when they answer questions about it, tracked over time. Building visibility on unconfirmed foundations only amplifies whatever is wrong, which is why it comes last.
How much of your content is reachable and readable, rather than blocked, buried or missing. Higher is better.
Where your content could lead an AI system to state something incorrect. Only direct routes to a wrong answer count here.
Anyone asking for this site, a person on a phone or an AI system building an answer, is let in, turned away, or left with no answer, in milliseconds, by machinery most organisations never see. An AI system that gets nothing here reads nothing at all: to that system the organisation simply does not answer.
The proof behind this picture
29 live agents were first set up and readied for this assessment. 26 were sent to this door: 4 people and 22 AI systems, in the order shown on the chart; the other 3 stood ready as backup, to be called in depending on how the door answered. Of those sent, 24 made one timed call each, in their own name, asking for the same page. The 2 desktop browsers made a full visit, exactly as a person at a computer would. Nothing here is simulated: these are real calls to the live site, recorded as they happened, and each line below carries the moment it happened. Alongside them, two further readings were taken at the door: the site's security certificate, and its published rules for crawlers.
| Visitor | When | What happened | Answer | Took | Sent | Received | Answered from |
|---|---|---|---|---|---|---|---|
| People | |||||||
| iPhone user | 14:42:31.266 | ✓ served | 200 | 16 ms | 245 B | 54.2 KB | 199.232.24.201 |
| Android user | 14:42:31.266 | ✓ served | 200 | 14 ms | 227 B | 54.2 KB | 199.232.24.201 |
| Safari on a Mac | 14:42:31.824 | ✓ served | 200 | 1356 ms | n/a | n/a | n/a |
| Chrome on a PC | 14:42:35.496 | ✓ served | 200 | 728 ms | n/a | n/a | n/a |
| AI systems | |||||||
| GPTBot · OpenAI | 14:42:31.163 | ✓ served | 200 | 17 ms | 212 B | 54.2 KB | 199.232.24.201 |
| OAI-SearchBot · OpenAI | 14:42:31.163 | ✓ served | 200 | 38 ms | 289 B | 54.2 KB | 199.232.24.201 |
| ChatGPT-User · OpenAI | 14:42:31.163 | ✓ served | 200 | 33 ms | 215 B | 54.2 KB | 199.232.24.201 |
| ClaudeBot · Anthropic | 14:42:31.163 | ✓ served | 200 | 32 ms | 175 B | 54.2 KB | 199.232.24.201 |
| Claude-SearchBot · Anthropic | 14:42:31.163 | ✓ served | 200 | 29 ms | 227 B | 54.2 KB | 199.232.24.201 |
| Claude-User · Anthropic | 14:42:31.163 | ✓ served | 200 | 30 ms | 217 B | 54.2 KB | 199.232.24.201 |
| Googlebot (Gemini) | 14:42:31.181 | ✓ served | 200 | 19 ms | 251 B | 54.2 KB | 199.232.24.201 |
| GoogleOther | 14:42:31.193 | ✓ served | 200 | 16 ms | 216 B | 54.2 KB | 199.232.24.201 |
| Bingbot (Copilot) · Microsoft | 14:42:31.194 | ✓ served | 200 | 32 ms | 250 B | 54.2 KB | 199.232.24.201 |
| PerplexityBot | 14:42:31.196 | ✓ served | 200 | 21 ms | 229 B | 54.2 KB | 199.232.24.201 |
| Perplexity-User | 14:42:31.197 | ✓ served | 200 | 31 ms | 233 B | 54.2 KB | 199.232.24.201 |
| CCBot · Common Crawl | 14:42:31.202 | ✓ served | 200 | 29 ms | 150 B | 54.2 KB | 199.232.24.201 |
| Bytespider · ByteDance | 14:42:31.203 | ✓ served | 200 | 29 ms | 258 B | 54.2 KB | 199.232.24.201 |
| Amazonbot | 14:42:31.211 | ✓ served | 200 | 19 ms | 218 B | 54.2 KB | 199.232.24.201 |
| GrokBot · xAI | 14:42:31.218 | ✓ served | 200 | 22 ms | 162 B | 54.2 KB | 199.232.24.201 |
| Meta-ExternalAgent | 14:42:31.227 | ✓ served | 200 | 22 ms | 199 B | 54.2 KB | 199.232.24.201 |
| Meta-WebIndexer | 14:42:31.229 | ✓ served | 200 | 29 ms | 201 B | 54.2 KB | 199.232.24.201 |
| Meta-ExternalFetcher | 14:42:31.231 | ✓ served | 200 | 30 ms | 201 B | 54.2 KB | 199.232.24.201 |
| Applebot | 14:42:31.232 | ✗ turned away | 429 | 19 ms | 277 B | 283 B | 199.232.24.201 |
| MistralAI-Training | 14:42:31.233 | ✓ served | 200 | 24 ms | 229 B | 54.2 KB | 199.232.24.201 |
| MistralAI-Index | 14:42:31.241 | ✓ served | 200 | 18 ms | 226 B | 54.2 KB | 199.232.24.201 |
| MistralAI-User | 14:42:31.250 | ✓ served | 200 | 15 ms | 225 B | 54.2 KB | 199.232.24.201 |
The desktop browsers are run in full rather than as a single call, so one figure for the information moved does not apply to them; their outcome and timing are shown.
What this shows
All 4 people were served. 21 of the 22 AI systems were served and 1 was turned away. The visitors fall into two groups, and each is judged on its own. 12 of the 13 services that answer people's questions were let in, and Apple was turned away. 9 of the 9 services that gather material for future answers were let in. The group that matters most today is the one being refused: those services answer people as they ask, so the organisation is missing from answers being given now. Where a service arrived carrying a question, the question used was the organisation's own name, โElectronic Frontier Foundationโ, because that is what the public asks. The sizes tell the same story: a caller who is served receives the page in full, about 54.2 KB here, while a caller who is turned away receives a short refusal in its place, about 283 B, and nothing more. A door of this kind decides call by call. This record is what happened at this door, at this time, from this address; it can answer differently at another time, which is why the time and the address are part of the record.
How this stands up
These calls can be repeated on request while you watch. A separate checking tool, kept apart from the assessment engine so the two cannot share a mistake, knocks on the same door several times over and records whether the answers hold still; each of its checks is saved with the date, the time and the calling address.
Whether the estate can be reached and read at all: access rules, links, redirects, sitemap, transport.
| Check | Result | Evidence | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Fails · 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DS03 | fail | 1 of 22 AI services are turned away before they reach the site, while the other 21 are served in full, so those without your pages answer about you from other people's material instead of your own. The door decides call by call: this check's own requests saw 0 of 22 not served and the front-door capture 1 of 22, and the verdict stands on the worse of the two. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
What we check The same page loads for a browser but is refused when the request names itself as an AI service. What good looks like The page returns the same response to a named AI service as to a browser, with no edge block. Why it matters AI systems are being turned away before they reach the site, and because the barrier sits outside the organisation's own systems, nobody inside can see it happening. Those systems carry on answering questions about the organisation, from other people's material rather than its own, so the conversation about it goes on without it and nobody has decided that. What we found on this page 1 of 22 AI services are turned away before they reach the site, while the other 21 are served in full, so those without your pages answer about you from other people's material instead of your own. The door decides call by call: this check's own requests saw 0 of 22 not served and the front-door capture 1 of 22, and the verdict stands on the worse of the two. The evidence, taken from the page as served Each crawler's own request to the entry page, and the status it received
Hostwww.eff.org · resolves to 199.232.24.201 · a Fastly hostname
Address trailwww.eff.org › eff.map.fastly.net
Checked2026-08-26 14:42 UTC · request sent from 172.31.11.73 (our checker)
Why it reads as a failure The result is set by what was measured on this item, quoted above, and not by an opinion of it. It reads as a failure because the standard was not met: the page returns the same response to a named AI service as to a browser, with no edge block. What it does to the figure This check counts toward the readiness figure for this item, at a weight of 5 out of a possible 5, because it is one of the checks that decide whether content can be reached and read at all, so it carries the heaviest weight in the figure for this item. Why it moves the misinformation reading This failure could contribute to a wrong answer in some cases, so it raises the misinformation reading for this item. Where an item carries more than one such failure, the readings compound and the item moves up the scale. What this result does not say This says what was found on this item at the time of assessment, and nothing beyond it: it is not a statement about the rest of the estate, and it does not judge the quality of the content itself. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Warnings · 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DS26 | warning | the sitemap lists the site's addresses but records no date against any of them, so nothing in it says how current they are | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
What we check Whether the sitemap carries last-modified dates, and how old the most recent of them is. What good looks like The sitemap carries recent last-modified dates. Why it matters Absent or stale dates leave the age of the content unstated, so fresh pages read as no newer than old ones. What we found on this page the sitemap lists the site's addresses but records no date against any of them, so nothing in it says how current they are The evidence, taken from the page as served The sitemap this site publishes, as read
The sitemap was read for the date each address records for itself.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Passing checks are omitted here; the full record is in the exports.
The highest-priority pages, chosen from the site's own signals of importance.
The page https://www.eff.org/
| Check | Result | Evidence | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Fails · 4 | |||||||||||||
| CT09 | fail | 2 skipped heading level(s) in document order | |||||||||||
What we check Heading levels step down one at a time, rather than jumping from an H2 straight to an H5. What good looks like Heading levels step down one at a time, without jumping a level. Why it matters A skipped heading level breaks the trail that says which section a passage belongs to, so it is filed under the wrong one. What we found on this page 2 skipped heading level(s) in document order The evidence, taken from the page as served The page's heading outline, in document order (a jump in level is marked)
H1 (no text) H1 (no text) H3 Some Tech Companies Have Privately Pushed Back on ICE Subpoenas. They Should All level jumped H3 EFF and Civil Society Groups Call on Nottinghamshire Police to Halt Live Face Re H3 Zero-Knowledge Proofs Arenโt Age Verification Silver Bullets H3 If you use technology, this fight is yours. H6 EFF defends your privacy and free expression because technology should serve all level jumped H3 Surveillance Self-Defense H3 Artificial Intelligence H3 Age Verification and Age Gating: Resource Hub H2 The Latest H3 French Top Court Gets It Right, Strikes Down Social Media Ban For Youths H3 EFF and Civil Society Groups Call on Nottinghamshire Police to Halt Live Face Re H3 Intermediary Liability in Brazil: The Intricate Path Ahead H3 Some Tech Companies Have Privately Pushed Back on ICE Subpoenas. They Should All H3 ๐ The Sneaky Code Tracking App Users | EFFector 38.15 H3 Ninth Circuit Ruling Will Force Online Platforms That Host User Speech to Fight H3 Zero-Knowledge Proofs Arenโt Age Verification Silver Bullets H3 Too Little, Too Late: Flock Admits Their Technology Needs Reforms H3 Who (or What) Generates Images for EFF? H3 Dismiss Churchโs Trademark Lawsuit Against โMormon Storiesโ Podcast, EFF Urges C H2 Follow EFF: H2 Contact H2 About H2 Issues H2 Updates H2 Press H2 Donate
Why it reads as a failure The result is set by what was measured on this item, quoted above, and not by an opinion of it. It reads as a failure because the standard was not met: heading levels step down one at a time, without jumping a level. What it does to the figure This check counts toward the readiness figure for this item, at a weight of 3 out of a possible 5, because it is one of the checks that decide how cleanly content can be read once reached, so it carries a middle weight in the figure for this item. Why it moves the misinformation reading This failure could contribute to a wrong answer in some cases, so it raises the misinformation reading for this item. Where an item carries more than one such failure, the readings compound and the item moves up the scale. What this result does not say This says what was found on this item at the time of assessment, and nothing beyond it: it is not a statement about the rest of the estate, and it does not judge the quality of the content itself. | |||||||||||||
| CT13 | fail | main content is 0% of the page's text; the shared furniture around it dominates what is read out | |||||||||||
What we check How much of the page's text sits in the main content region rather than in surrounding furniture. What good looks like Most of the page's text sits in its main content region rather than in the surrounding furniture. Why it matters Most of what this page serves is menus and repeated furniture rather than its own words, so what a system takes away is mostly padding, with the real message diluted or lost. What we found on this page main content is 0% of the page's text; the shared furniture around it dominates what is read out The evidence, taken from the page as served How much of this page is its own content
Counted from the page as served, before any script runs. The rest is the menus, header and foot-of-page text that appear on other pages of the site as well.
Why it reads as a failure The result is set by what was measured on this item, quoted above, and not by an opinion of it. It reads as a failure because the standard was not met: most of the page's text sits in its main content region rather than in the surrounding furniture. What it does to the figure This check counts toward the readiness figure for this item, at a weight of 3 out of a possible 5, because it is one of the checks that decide how cleanly content can be read once reached, so it carries a middle weight in the figure for this item. Why it moves the misinformation reading This failure is a real and common route to a wrong answer for the content it affects, so it raises the misinformation reading for this item. Where an item carries more than one such failure, the readings compound and the item moves up the scale. What this result does not say This says what was found on this item at the time of assessment, and nothing beyond it: it is not a statement about the rest of the estate, and it does not judge the quality of the content itself. | |||||||||||||
| CT14 | fail | the page does not mark out its navigation, so the menu links run into the page's own words when it is read | |||||||||||
What we check Navigation is marked as navigation, so its links separate cleanly from the body text. What good looks like Navigation is marked as navigation, so its links separate cleanly from the body text. Why it matters Menu links here read as ordinary sentences to an AI system, so quotes from the page come back padded with strings of navigation words. What we found on this page the page does not mark out its navigation, so the menu links run into the page's own words when it is read The evidence, taken from the page as served The blocks this page marks out, as served
The page was read for the block that marks out its navigation. <a href="#main-content" class="element-invisible element-focusable"> <div id="mobile-nav" class="navigation"> <div id="masthead-mobile-wrapper"> <div class="donate-banner-wrapper" data-pane_id="donate-banner" data-banner_type="image"> <div id="site_banner"> <header id="header"> <noscript> <div class="above-banner"> <div class="banner-wrapper"> <div id="main-content"> <p class="faq-toc"> <div id="footer"> <div id="footer-bottom"> <a href="/librejs/jslicense" rel="jslicense" style="display: none"> Why it reads as a failure The result is set by what was measured on this item, quoted above, and not by an opinion of it. It reads as a failure because the standard was not met: navigation is marked as navigation, so its links separate cleanly from the body text. What it does to the figure This check counts toward the readiness figure for this item, at a weight of 1 out of a possible 5, because it is one of the supporting checks, so it carries the lightest weight in the figure for this item. Why it moves the misinformation reading This failure could contribute to a wrong answer in some cases, so it raises the misinformation reading for this item. Where an item carries more than one such failure, the readings compound and the item moves up the scale. What this result does not say This says what was found on this item at the time of assessment, and nothing beyond it: it is not a statement about the rest of the estate, and it does not judge the quality of the content itself. | |||||||||||||
| MS08 | fail | 7 link wording(s) are used for more than one destination, so the same words point at different pages: โdeeplinks blogโ, โdonateโ, โeventsโ and 4 more; the links are listed in the view | |||||||||||
What we check Links that share exactly the same wording on one page while pointing at different destinations. What good looks like Links that share the same wording lead to the same destination. Why it matters Identical links on one page lead to different places, so which one gets followed is a coin toss. A reader or system lands on the wrong page while believing it chose correctly. What we found on this page 7 link wording(s) are used for more than one destination, so the same words point at different pages: โdeeplinks blogโ, โdonateโ, โeventsโ and 4 more; the links are listed in the view The evidence, taken from the page as served Links that share the same text but point to different destinations, as served
<a href="/work">Issues</a> <a href="/work">Issues</a> <a href="/issues">Issues</a> <a href="/issues">Issues</a> <a href="/issues/security">Security</a> <a href="/issues/security">Security</a> <a href="/security">Security</a> <a href="/issues/security">Security</a> <a href="/deeplinks">Deeplinks Blog</a> <a href="/deeplinks">Deeplinks Blog</a> …and 2 more like it. Why it reads as a failure The result is set by what was measured on this item, quoted above, and not by an opinion of it. It reads as a failure because the standard was not met: links that share the same wording lead to the same destination. What it does to the figure This check counts toward the readiness figure for this item, at a weight of 3 out of a possible 5, because it is one of the checks that decide how cleanly content can be read once reached, so it carries a middle weight in the figure for this item. Why it moves the misinformation reading This failure could contribute to a wrong answer in some cases, so it raises the misinformation reading for this item. Where an item carries more than one such failure, the readings compound and the item moves up the scale. What this result does not say This says what was found on this item at the time of assessment, and nothing beyond it: it is not a statement about the rest of the estate, and it does not judge the quality of the content itself. | |||||||||||||
| Warnings · 12 | |||||||||||||
| CT06 | warning | title length 75 chars | |||||||||||
What we check The title's length sits in a usable window, between 10 and 65 characters. What good looks like The title's length sits in a usable window, neither too short to say anything nor too long to be cut. Why it matters A title that is too short or too long is liable to be rewritten elsewhere, and control of the page's name goes with it. What we found on this page title length 75 chars The evidence, taken from the page as served The page title, as served
<title>Electronic Frontier Foundation | Defending your rights in the digital world</title> | |||||||||||||
| CT31 | warning | the page carries no description of itself in its head | |||||||||||
What we check The page provides a meta description, the short summary offered alongside its title. What good looks like The page provides a meta description. Why it matters The page provides no summary of itself, so the short description shown beside its name is written by whoever lists it. The organisation gives up its own say in how the page is introduced. What we found on this page the page carries no description of itself in its head The evidence, taken from the page as served The head of this page, as served
The head of the page was read for a description tag. <head> <meta charset="utf-8"/> <link href="https://www.eff.org/" rel="alternate" hreflang="en"/> <link rel="shortcut icon" href="https://www.eff.org/sites/all/themes/frontier/favicon.ico" type="image/vnd.microsoft.icon"/> <link rel="profile" href="http://www.w3.org/1999/xhtml/vocab"/> <meta name="HandheldFriendly" content="true"/> <meta name="MobileOptimized" content="width"/> <meta http-equiv="cleartype" content="on"/> <link rel="apple-touch-icon-precomposed" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon-precomposed.png"/> <link rel="apple-touch-icon" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon.png"/> <meta name="viewport" content="width=device-width"/> <meta name="rights" content="https://www.eff.org/copyright"/> <link rel="canonical" href="https://www.eff.org/"/> <link rel="image_src" href="https://www.eff.org/files/eff-og.png"/> <link rel="shortlink" href="https://www.eff.org/"/> <meta property="og:site_name" content="Electronic Frontier Foundation"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.eff.org/"/> <meta property="og:title" content="Electronic Frontier Foundation"/> <meta propertโฆ | |||||||||||||
| CT11 | warning | 2 H1s (informational; not an error per Google) | |||||||||||
What we check More than one main heading on the page, recorded for information rather than marked as a fault. What good looks like The page carries one main heading rather than several. Why it matters Two main headings make a page state its subject twice, which can blur which one defines it. On its own this rarely changes what gets quoted, so it is noted for the record rather than marked as a fault. What we found on this page 2 H1s (informational; not an error per Google) The evidence, taken from the page as served The multiple H1 headings, as served
<h1/> <h1/> | |||||||||||||
| MS11 | warning | the page does not mark out which part holds its main content | |||||||||||
What we check Whether the page marks which region holds its main content, as against navigation and footer. What good looks like The page marks which region holds its main content. Why it matters Nothing marks where this page's real content sits, so menus and repeated small print travel with its text wherever it is quoted. The message arrives wrapped in clutter, or the clutter gets quoted as the message. What we found on this page the page does not mark out which part holds its main content The evidence, taken from the page as served The blocks this page marks out, as served
The page was read for the block that marks out its main content. <a href="#main-content" class="element-invisible element-focusable"> <div id="mobile-nav" class="navigation"> <div id="masthead-mobile-wrapper"> <div class="donate-banner-wrapper" data-pane_id="donate-banner" data-banner_type="image"> <div id="site_banner"> <header id="header"> <noscript> <div class="above-banner"> <div class="banner-wrapper"> <div id="main-content"> <p class="faq-toc"> <div id="footer"> <div id="footer-bottom"> <a href="/librejs/jslicense" rel="jslicense" style="display: none"> | |||||||||||||
| CT16 | warning | the page states nothing about itself in a form a machine can take as given, so who you are and what the page is about are worked out from its wording | |||||||||||
What we check Whether the page states what it is, and the exact facts it carries, in a form a machine can take as given rather than work out from the wording. What good looks like The page states what it is in machine-readable form, and where it carries exact facts it states those too. A page of exact facts stating none of them is a fail; a narrative page without a block is a warning. Why it matters Where a page carries exact facts, an address, opening hours, a price, a date, leaving them only in prose means they are worked out rather than read, and that is where a wrong branch or an old price comes from. What we found on this page the page states nothing about itself in a form a machine can take as given, so who you are and what the page is about are worked out from its wording The evidence, taken from the page as served The head of this page, as served
The page was read for a short block of machine-readable detail saying what it is. The page's own words carry no exact facts of that kind. <head> <meta charset="utf-8"/> <link href="https://www.eff.org/" rel="alternate" hreflang="en"/> <link rel="shortcut icon" href="https://www.eff.org/sites/all/themes/frontier/favicon.ico" type="image/vnd.microsoft.icon"/> <link rel="profile" href="http://www.w3.org/1999/xhtml/vocab"/> <meta name="HandheldFriendly" content="true"/> <meta name="MobileOptimized" content="width"/> <meta http-equiv="cleartype" content="on"/> <link rel="apple-touch-icon-precomposed" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon-precomposed.png"/> <link rel="apple-touch-icon" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon.png"/> <meta name="viewport" content="width=device-width"/> <meta name="rights" content="https://www.eff.org/copyright"/> <link rel="canonical" href="https://www.eff.org/"/> <link rel="image_src" href="https://www.eff.org/files/eff-og.png"/> <link rel="shortlink" href="https://www.eff.org/"/> <meta property="og:site_name" content="Electronic Frontier Foundation"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.eff.org/"/> <meta property="og:title" content="Electronic Frontier Foundation"/> <meta propertโฆ | |||||||||||||
| CT04 | warning | the page shows the year 2027 in its text, but nothing on the page states it as the date of the content | |||||||||||
What we check The page carries a date, ideally written into the markup rather than sitting only in the text. What good looks like The page carries a date, ideally written into the markup rather than sitting only in the text. Why it matters An undated page gives nothing to weigh its age against, so old and new material are treated alike. What we found on this page the page shows the year 2027 in its text, but nothing on the page states it as the date of the content The evidence, taken from the page as served The head of this page, as served
The head of the page was read for a tag stating the date of the content. The year shown above was found in the page's own text. <head> <meta charset="utf-8"/> <link href="https://www.eff.org/" rel="alternate" hreflang="en"/> <link rel="shortcut icon" href="https://www.eff.org/sites/all/themes/frontier/favicon.ico" type="image/vnd.microsoft.icon"/> <link rel="profile" href="http://www.w3.org/1999/xhtml/vocab"/> <meta name="HandheldFriendly" content="true"/> <meta name="MobileOptimized" content="width"/> <meta http-equiv="cleartype" content="on"/> <link rel="apple-touch-icon-precomposed" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon-precomposed.png"/> <link rel="apple-touch-icon" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon.png"/> <meta name="viewport" content="width=device-width"/> <meta name="rights" content="https://www.eff.org/copyright"/> <link rel="canonical" href="https://www.eff.org/"/> <link rel="image_src" href="https://www.eff.org/files/eff-og.png"/> <link rel="shortlink" href="https://www.eff.org/"/> <meta property="og:site_name" content="Electronic Frontier Foundation"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.eff.org/"/> <meta property="og:title" content="Electronic Frontier Foundation"/> <meta propertโฆ | |||||||||||||
| AR13 | warning | only 50 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site | |||||||||||
What we check Whether the page's main content is marked off from the navigation and footer around it. What good looks like A main or article region marks the primary content off from the navigation and footer around it. Why it matters Pulling the page's text returns menus and legal footers mixed with the substance, so the answer arrives buried in noise. What we found on this page only 50 characters of this page read as its own content, so either the page is thin or its own words cannot be told apart from the parts repeated across the site The evidence, taken from the page as served The main text extracted from the page, as served
Banner Graphic: Resource Surveillance Self-Defense | |||||||||||||
| CT24 | warning | the page's own content runs to 50 characters | |||||||||||
What we check The page holds enough main text to be substantive, measured against a 400 character floor. What good looks like The page holds enough main text to be substantive. Why it matters A page of a few sentences offers almost nothing to quote, so it adds little beyond its own existence. What we found on this page the page's own content runs to 50 characters The evidence, taken from the page as served How much of this page is its own content
Counted from the page as served, before any script runs. The page's own content is the part it marks out as its main content; where it marks out none, the whole of its text is counted.
| |||||||||||||
| CT15 | warning | the page does not mark out its footer, so the repeated foot-of-page text runs into the page's own words when it is read | |||||||||||
What we check The footer is marked as a footer, so the small print separates from the body text. What good looks like The footer is marked as a footer, so the small print separates from the body text. Why it matters The small print at the foot of these pages blends into their content, so legal lines and address blocks get quoted back as if they were the page's own message. What we found on this page the page does not mark out its footer, so the repeated foot-of-page text runs into the page's own words when it is read The evidence, taken from the page as served The blocks this page marks out, as served
The page was read for the block that marks out its footer. <a href="#main-content" class="element-invisible element-focusable"> <div id="mobile-nav" class="navigation"> <div id="masthead-mobile-wrapper"> <div class="donate-banner-wrapper" data-pane_id="donate-banner" data-banner_type="image"> <div id="site_banner"> <header id="header"> <noscript> <div class="above-banner"> <div class="banner-wrapper"> <div id="main-content"> <p class="faq-toc"> <div id="footer"> <div id="footer-bottom"> <a href="/librejs/jslicense" rel="jslicense" style="display: none"> | |||||||||||||
| AJ05 | warning | no site-search control detected on this page | |||||||||||
What we check Whether a search box for the site is present in the page as it is served. What good looks like A search box is present in the served markup, so the site's own content can be queried directly. Why it matters With no search box on the page, its links are the only route from here into the rest of the site. What we found on this page no site-search control detected on this page The evidence, taken from the page as served The head of this page, as served
The page was read for a search box: a search form, a control named for search, or a box labelled as one. <head> <meta charset="utf-8"/> <link href="https://www.eff.org/" rel="alternate" hreflang="en"/> <link rel="shortcut icon" href="https://www.eff.org/sites/all/themes/frontier/favicon.ico" type="image/vnd.microsoft.icon"/> <link rel="profile" href="http://www.w3.org/1999/xhtml/vocab"/> <meta name="HandheldFriendly" content="true"/> <meta name="MobileOptimized" content="width"/> <meta http-equiv="cleartype" content="on"/> <link rel="apple-touch-icon-precomposed" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon-precomposed.png"/> <link rel="apple-touch-icon" href="https://www.eff.org/sites/all/themes/phoenix/apple-touch-icon.png"/> <meta name="viewport" content="width=device-width"/> <meta name="rights" content="https://www.eff.org/copyright"/> <link rel="canonical" href="https://www.eff.org/"/> <link rel="image_src" href="https://www.eff.org/files/eff-og.png"/> <link rel="shortlink" href="https://www.eff.org/"/> <meta property="og:site_name" content="Electronic Frontier Foundation"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.eff.org/"/> <meta property="og:title" content="Electronic Frontier Foundation"/> <meta propertโฆ | |||||||||||||
| MS06 | warning | 1 of 20 images lack an alt attribute; alt="" on decorative images is correct and not penalised | |||||||||||
What we check Images published with no alt text at all, and whether any of those images are themselves links. What good looks like Each informative image carries alt text describing it. Why it matters These images say nothing in text, so whatever they show is missing from the page as machines read it. Where an image is also a link, the link has no name at all. What we found on this page 1 of 20 images lack an alt attribute; alt="" on decorative images is correct and not penalised The evidence, taken from the page as served The images with no alt attribute, as served (with the file each points at)
<img src="/sites/all/themes/phoenix/images/logo-monogram-white.svg"/> | |||||||||||||
| MS02 | warning | 4 of 124 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for | |||||||||||
What we check Whether the page's buttons, links and form controls each carry a name once the page has loaded. What good looks like The page's buttons, links and form controls each carry a name once the page has loaded. Why it matters An unnamed button or form control is truly blind: nothing in the page's code says what it is for, so anything operating the site on a customer's behalf is left guessing. One such control is enough to stop a task; unnamed links are weighed by how common they are. What we found on this page 4 of 124 buttons, links and controls on the loaded page carry no name in the page's code saying what each is for The evidence, taken from the page as served The controls on this page that carry no name
Read on the page once its scripts had run.
| |||||||||||||
No PDF documents were part of this assessment.
This report is Stage 1, Foundations: each automated test the engine can run without human input, so there is a usable result at the first stage. Governance (owner-confirmed truth) and Visibility (how AI agents find the estate) are later stages and are shown greyed above.
What was assessed. 1 pages were assessed, selected from 3 reviewed using the site's own signals of importance (its navigation, homepage links, most-linked pages, sitemap, and any llms.txt file), and the first 0 PDF documents found were assessed separately. The industry in the header is classified from the site's own content. The traffic classification comes from a recognised top-sites list or a connected traffic provider; it reads NA when the domain is not connected to a traffic source.
Header identity signals. The regulated sector and listed company values are inferred from the same crawled content, and shown here so the header can stay to the answer alone. Regulated sector reads “None found”: no regulator statements, and the established sector carries no statutory regulator. Listed company reads “Not established”: no clear public-listing indicators in the sampled pages.
AI readiness is the weighted share of checks that passed, reported separately for pages and for PDF documents because each is reached and corrected differently. Grade A checks decide whether content can be reached and read at all; grade B whether it is understood correctly; grade C support reliability. A measured score is scaled into a ceiling when an access gate binds it (for example the site blocking AI crawlers at its edge): content that cannot be reached is not partially ready. Scores never read exactly 25, 50, 75 or 100, because those are buckets, not measurements.
Likelihood of misinformation is a band, given as a worst case (the highest any single item or estate-wide finding reaches) and a typical position across the pages or documents. Only checks whose failure is a direct route to a wrong answer carry a band; the rest affect readiness only.
| Band | Range | Meaning |
|---|---|---|
| Likely zero | 0-5% | No failing misinformation-bearing checks. |
| Very little | 6-25% | Unlikely to cause wrong information. |
| Likely | 26-50% | Could contribute to wrong information in some cases. |
| Very likely | 51-75% | A real and common route to wrong information. |
| Extremely likely | 76-100% | A frequent and direct cause of wrong information. |
Of the register's 189 checks, 80 ran automatically in this Foundations stage. 64 are questions for the person accountable for the content, asked at the next stage. 38 are defined in the register and not yet built. 7 need information supplied by the organisation. Each check that did not run is listed in the exports, with its reason.
About us
We have been doing this for 25 years. For the last two years, we have been training AI to understand and map AI Readiness (fundamentals, governance, visibility), against our unique dataset of more than 3.7 trillion data points.
Who’s talking about us