[{"data":1,"prerenderedAt":6286},["ShallowReactive",2],{"article-\u002Fen\u002Fblog\u002Fa11y-world-rules\u002F":3,"article-alt-\u002Fen\u002Fblog\u002Fa11y-world-rules\u002F":682,"article-related-\u002Fen\u002Fblog\u002Fa11y-world-rules\u002F":1460},{"id":4,"title":5,"body":6,"date":667,"description":668,"draft":669,"extension":670,"meta":671,"navigation":672,"ogImage":673,"path":674,"seo":675,"stem":676,"tags":677,"translationKey":673,"updatedAt":673,"__hash__":681},"blog_en\u002Fen\u002Fblog\u002Fa11y-world-rules.md","Who Forces Websites to Be Accessible? A Comparison of Web Accessibility Regimes Across 16 Jurisdictions",{"type":7,"value":8,"toc":658},"minimark",[9,13,16,19,22,27,30,43,46,51,54,57,60,63,66,69,73,78,81,92,96,99,113,117,120,143,147,152,156,181,185,200,204,208,211,214,217,220,223,226,229,232,235,241,245,248,251,254,257,260,263,266,269,272,277,281,289,293,304,308,312,319,326,333,340,344,351,358,362,369,376,383,387,394,401,408,412,419,426,430,437,444,448,455,462,466,473,480,487,494,498,505,512,516,523,530,537,541,548,555,559,566,573,577,584,591,598,602,609,616,620,627,634,638,645,652,655],[10,11,12],"p",{},"I’ve recently been working on adding a “certification mark” feature to my Accesserty Signal extension (a Google Chrome extension that flags, right in Google\u002FBing search results, which websites carry an accessibility mark, an accessibility statement, or a Lighthouse score). What started as a simple effort to collect each country’s marks, regulations, and testing criteria turned into something bigger: halfway through, I realized I first needed to understand each country’s policy. So I began compiling it by hand — but with so many countries and so much detail, I had to enlist AI to help organize and analyze it, and I’m sharing the result here.",[10,14,15],{},"The information below may contain errors; corrections from experts are very welcome. The next article will analyze each country’s certification marks.",[10,17,18],{},"For that reason, this article lays the institutional groundwork first. It surveys the web accessibility regimes of 16 jurisdictions: Taiwan, the United States, the United Kingdom, Australia, South Korea, Japan, and India, plus — within the EU framework — Germany, France, Spain, Portugal, Austria, Belgium, and the Netherlands, as well as non-EU Switzerland.",[10,20,21],{},"The focus is not on “which version of WCAG” (the technical standard has converged almost universally on WCAG 2.1\u002F2.2 AA), but on a more fundamental question: what force actually makes a website become accessible? Is it the government issuing a certificate, sending inspectors to audit periodically, levying a fine — or waiting for a person with a disability to sue? The answers differ far more than you might expect.",[23,24,26],"h3",{"id":25},"_1-the-framework-separate-public-from-private-first-then-look-at-the-tool","1. The Framework: Separate Public from Private First, Then Look at the Tool",[10,28,29],{},"The most common mistake in comparing countries is treating each one as a single “cell.” In reality, almost every jurisdiction governs the public sector and the private sector with two different laws, two different enforcers, and two different consequences:",[31,32,33,37,40],"ul",{},[34,35,36],"li",{},"The EU uses two separate directives — the WAD (public sector) and the EAA (private sector).",[34,38,39],{},"Germany’s public sector (BITV) carries no penalty, yet its private sector (BFSG) can be fined up to €100,000.",[34,41,42],{},"Taiwan legally requires government sites to obtain a mark, but imposes virtually nothing on the private sector.",[10,44,45],{},"This article therefore uses a two-axis analysis: first separate “public vs. private,” then use a shared vocabulary of mechanisms to locate where each jurisdiction falls.",[47,48,50],"h4",{"id":49},"six-regulatory-tools-the-mechanism-vocabulary","Six Regulatory Tools (the Mechanism Vocabulary)",[10,52,53],{},"① Mandatory certification (gates ex ante) — Government or designated bodies test and certify; the law requires certain entities to obtain it.",[10,55,56],{},"② Self-declaration + government monitoring (continuous) — Regulated parties self-assess and publish an accessibility statement; government samples and re-checks, plus a complaints channel.",[10,58,59],{},"③ Procurement \u002F supply-chain leverage (gates at entry) — “Government only buys accessible products” \u002F “non-compliance loses you the contract.”",[10,61,62],{},"④ Market surveillance + fines (ex post) — A market-surveillance authority audits, orders remediation, imposes fines, or even pulls the service.",[10,64,65],{},"⑤ Anti-discrimination litigation (ex post) — No prior certification; driven by individual complaints, civil litigation, and administrative remedies.",[10,67,68],{},"⑥ Soft law \u002F duty to make efforts — No binding threshold or penalty; relies on administrative guidance and reputational pressure.",[47,70,72],{"id":71},"_2-jurisdiction-by-jurisdiction-review-grouped-by-dominant-model","2. Jurisdiction-by-Jurisdiction Review (Grouped by Dominant Model)",[74,75,77],"h5",{"id":76},"group-a-government-mandatory-certification-model-east-asia-india","Group A — Government Mandatory-Certification Model (East Asia + India)",[10,79,80],{},"What these jurisdictions share: the government (or a government-designated body) acts as the certifier, and “obtaining certification” is written into law or policy.",[31,82,83,86,89],{},[34,84,85],{},"Taiwan. The parent law — Article 52–2 of the People with Disabilities Rights Protection Act — explicitly requires government agencies and schools to have their websites “pass accessibility testing at Priority 1 (Level A) or above, and obtain the certification mark.” The Ministry of Digital Affairs runs the platform, combining self-testing, automated testing, and human testing (including testers with disabilities). The standard is based on WCAG 2.1 AA, with an upgrade to 2.2 planned for end-2026. Mandatory for the public sector; unregulated for the private sector.",[34,87,88],{},"South Korea. Centered on Article 21 of the Anti-Discrimination Against and Remedies for Persons with Disabilities Act, the Ministry of Science and ICT (MSIT) designates three certification bodies to issue an official quality mark, under the KWCAG 2.2 standard. Penalties are relatively hard — malicious discrimination can mean up to 3 years’ imprisonment or a fine up to KRW 30 million, plus administrative fines and loss of eligibility for government contracts. Public sector via certification; private sector compelled (in phases) by anti-discrimination law.",[34,90,91],{},"India. Built on the Rights of Persons with Disabilities Act (RPwD 2016). STQC — an official body under MeitY — tests and issues the CQW certification (bundling accessibility, cybersecurity, and usability together), under the GIGW 3.0 standard (WCAG 2.1 AA). Penalties run from ₹10,000 for a first offense to up to ₹5 lakh for repeat offenses. A 2025 SEBI circular extended mandatory accessibility to the financial sector for the first time — India is expanding from the public sector into the private.",[74,93,95],{"id":94},"group-b-anti-discrimination-litigation-driven-model-common-law-japan","Group B — Anti-Discrimination, Litigation-Driven Model (Common Law + Japan)",[10,97,98],{},"These jurisdictions set no government pre-certification; they frame accessibility as “anti-discrimination \u002F equal rights” and drive it through complaints and lawsuits.",[31,100,101,104,107,110],{},[34,102,103],{},"United States. A dual track — the ADA (anti-discrimination: Title II for state\u002Flocal government, Title III for the private sector) plus Section 508 (federal procurement). The standard must be layered: ADA Title II’s 2024 rule adopts WCAG 2.1 AA; Section 508 still references WCAG 2.0 AA; Title III has no statutory technical standard and relies on case law. The classic “litigation-driven” country, with thousands of website lawsuits a year.",[34,105,106],{},"United Kingdom. Public sector under the Public Sector Bodies Accessibility Regulations 2018 (PSBAR, transposing the WAD), monitored by GDS and enforced by the EHRC; private sector under the Equality Act 2010, which requires “reasonable adjustments,” with disabled users able to claim in the County Court. The standard tracks “WCAG as amended” (currently 2.2 AA). Post-Brexit, the UK has not transposed the EAA, so the private sector relies solely on the Equality Act.",[34,108,109],{},"Australia. The Disability Discrimination Act 1992 (DDA) covers both public and private sectors, but with no statutory technical standard and no administrative fines; the AHRC receives complaints → conciliation → the Federal Court, which can award damages and order remediation (the landmark case being Maguire v SOCOG, 2000). The federal government separately requires the latest WCAG (now 2.2 AA) via the DTA’s Digital Service Standard 2.0. In April 2025 the AHRC updated its recommended standard to WCAG 2.2 AA.",[34,111,112],{},"Japan. The Act on the Elimination of Discrimination against Persons with Disabilities — Article 7 (government) and Article 8 (private) — with the standard JIS X 8341–3:2016 (corresponding to WCAG 2.0, moving toward 2.1 in practice). As of 1 April 2024, the private-sector duty of “reasonable accommodation” was upgraded from a duty-to-make-efforts to a legal obligation, yet web accessibility itself remains more of an aspirational target with virtually no direct penalty (the only fine, up to ¥200,000, targets refusal to cooperate with government investigations or filing false reports). A textbook case of “soft law.”",[74,114,116],{"id":115},"group-c-eu-dual-directive-model-wad-for-public-eaa-for-private","Group C — EU Dual-Directive Model (WAD for Public, EAA for Private)",[10,118,119],{},"These countries are highly uniform in structure: the public sector derives from the WAD (2016\u002F2102) and runs on self-declaration + government monitoring; the private sector derives from the EAA (2019\u002F882, applicable from 28 June 2025) and runs on market surveillance + fines. The differences lie in “how much bite the monitoring has” and “how large the fines are.” The standard is uniformly EN 301 549 → WCAG 2.1 AA.",[31,121,122,125,128,131,134,137,140],{},[34,123,124],{},"Germany. Three layers — BGG (parent law) + BITV 2.0 (public sector) + BFSG (private sector). The public sector carries no penalty, relying on collective litigation (Verbandsklage); the private sector is handled by the federal states’ joint market-surveillance body (seated in Magdeburg), with fines up to €100,000.",[34,126,127],{},"France. Article 47 of Law №2005–102 + RGAA 4.1.2, with DINUM setting the standard. What’s distinctive: since 2023, ARCOM has real sanctioning power even over the public sector — €25,000 for failing declaration duties, €50,000 for accessibility non-conformity, renewable annually if uncorrected. The private sector (EAA) is overseen by the DGCCRF’s market surveillance, with aggregate fines reaching €250,000. France is one of the few EU countries that gave its public-sector monitoring real teeth.",[34,129,130],{},"Spain. Public sector under RD 1112\u002F2018 + monitoring by the Web Accessibility Observatory; private sector under RDL 11\u002F2023. Fines split by regime — public-sector oversight around €3,000–100,000, while the private-sector\u002FEAA tiers can reach €1,000,000 (very serious), among the highest ceilings in the EU. No official mark; AENOR and Ilunion are private voluntary certifications.",[34,132,133],{},"Portugal. Public sector under DL 83\u002F2018, with AMA monitoring and operating the government-run but voluntary “Usability and Accessibility Seal” (Selo: gold\u002Fsilver\u002Fbronze); private sector under DL 82\u002F2022, audited by multiple sectoral regulators (ANACOM, ASAE, etc.), with corporate fines up to roughly €44,892.",[34,135,136],{},"Austria. Public sector under the WZG, monitored by the FFG (Research Promotion Agency); private sector under the BaFG (2025), with the Social Ministry Service (Sozialministeriumservice) as market-surveillance authority, fines up to €80,000. WACA is a private voluntary mark.",[34,138,139],{},"Belgium. Its federal structure fragments the legal basis — one federal law (19 July 2018) plus several regional decrees; the Digital Accessibility Office under BOSA monitors and coordinates. The private-sector EAA is enforced by the federal economy ministry, among others. AnySurfer is a private voluntary mark.",[34,141,142],{},"Netherlands. Public sector under the Temporary Decree on Digital Accessibility for Government, using a comply-or-explain approach + Logius checking statements + a public dashboard, with no fines; the private-sector Implementation Act is supervised by the Authority for Consumers and Markets (ACM), with fines up to €90,000 and the power to ban a non-compliant service. Drempelvrij\u002FDigital Inclusive is a private voluntary mark.",[74,144,146],{"id":145},"group-d-non-eu-its-own-system","Group D — Non-EU, Its Own System",[31,148,149],{},[34,150,151],{},"Switzerland. The Disability Equality Act (BehiG, 2004) + the eCH-0059 standard (WCAG 2.1 AA). It currently applies only to the federal administration, with no fines, relying on individuals asserting their rights. Non-EU, so the EAA does not apply. A revision is underway, expected no earlier than 1 January 2027, to extend the obligation to private online services.",[47,153,155],{"id":154},"_3-the-public-private-mechanism-matrix","3. The Public × Private × Mechanism Matrix",[157,158,159,166],"figure",{},[10,160,161],{},[162,163],"img",{"alt":164,"src":165},"Web Accessibility Regimes","\u002Fimages\u002Fblog\u002F49.webp",[167,168,169],"figcaption",{},[10,170,171,172],{},"Web Accessibility Regimes — Public × Private Mechanism Matrix. Each jurisdiction is placed on both axes; ①–⑥ refer to the six mechanisms defined in Section 1.\n",[173,174,180],"a",{"href":175,"rel":176,"target":178,"title":179},"https:\u002F\u002Fwww.deque.com\u002Fblog\u002Fis-closing-the-web-accessibility-design-development-gap-a-bridge-too-far\u002F",[177],"nofollow","_blank","Open new window","Is Closing the Web Accessibility Design\u002FDevelopment Gap a Bridge Too Far?",[47,182,184],{"id":183},"four-structural-facts-the-matrix-reveals","Four Structural Facts the Matrix Reveals",[186,187,188,191,194,197],"ol",{},[34,189,190],{},"The public sector clusters around “certification\u002Fmonitoring”; the private sector splits into two paths. The public column is always ① or ②; the private column fractures into two legal traditions — common-law countries (US, UK, AU) plus East Asian anti-discrimination regimes (JP, KR) rely on ⑤ litigation, while the EU relies on ④ market surveillance + fines.",[34,192,193],{},"The “private sector” cell was long the weakest, only filled in during 2024–2025. Taiwan’s private sector is still nearly blank, Japan only hardened in 2024, both the EU’s EAA and India’s SEBI rule arrived in 2025, and Switzerland won’t until 2027. The center of gravity of accessibility enforcement is spilling over from the public sector into the private.",[34,195,196],{},"The same ② “monitoring” mechanism has very different bite. Most EU countries’ public sectors have no fines (Germany, Netherlands, Belgium, Austria, Portugal), relying on transparency and collective litigation; France is the outlier, with ARCOM able to fine the public sector up to €50k and “name and shame”; the UK has no fines but the EHRC holds investigative and litigation powers.",[34,198,199],{},"Private-sector (EAA) fine ceilings vary enormously. Portugal ~€45k, Austria €80k, Netherlands €90k, Germany €100k, France aggregate €250k, Spain up to €1M. The same EAA, “priced” wildly differently across countries.",[23,201,203],{"id":202},"_4-pros-and-cons-of-each-mechanism","4. Pros and Cons of Each Mechanism",[47,205,207],{"id":206},"a-common-public-sector-mechanisms","A. Common Public-Sector Mechanisms",[10,209,210],{},"① Mandatory certification — (Taiwan, Korea, India)",[10,212,213],{},"✅ Uniform standard; clear pass\u002Ffail; publicly verifiable; strongest effect on government sites; naturally produces an “official mark” people can trust.",[10,215,216],{},"⚠️ High administrative cost; tends to freeze at the moment of certification; hard to scale; quality can regress after passing (a one-off gate).",[10,218,219],{},"② Self-declaration + monitoring — (EU public sector, UK)",[10,221,222],{},"✅ Low barrier; can cover a vast number of sites; continuous monitoring reflects the current state; no need for a huge certification apparatus.",[10,224,225],{},"⚠️ Self-assessment has low credibility; monitoring is only sampled; becomes a formality when penalties are weak (a beautiful statement on an inaccessible site).",[10,227,228],{},"③ Procurement \u002F supply-chain leverage — (US Section 508)",[10,230,231],{},"✅ Drives many suppliers without needing new penalties; strong demonstration effect; clear chain of responsibility.",[10,233,234],{},"⚠️ Only reaches those who transact with government; easily gamed by inflated “self-declarations” (VPATs).",[236,237,238],"blockquote",{},[10,239,240],{},"The public sector’s shared weakness: however strong, its boundary stops at the government itself. Taiwan’s and India’s mandatory certification has no spillover to the private sector; the EU’s monitoring model has broad coverage but shallow depth, and most countries impose no fines on the public sector at all (France being a rare exception).",[47,242,244],{"id":243},"b-common-private-sector-mechanisms","B. Common Private-Sector Mechanisms",[10,246,247],{},"④ Market surveillance + fines — (EU private sector, India SEBI)",[10,249,250],{},"✅ Strong economic deterrence; clearly covers the private sector; clear attribution of responsibility; can pull or ban a service.",[10,252,253],{},"⚠️ Ex post (the harm is already done); limited enforcement capacity; heavy burden on SMEs; easily dodged via exemptions; ceilings vary widely and it only launched in 2025, so effectiveness is yet to be seen.",[10,255,256],{},"⑤ Anti-discrimination litigation — (US, UK, Australia, Korea)",[10,258,259],{},"✅ Empowers the affected individual; case law can raise the bar quickly; no need for a large ex-ante apparatus.",[10,261,262],{},"⚠️ Highly uncertain; standards form in a fragmented way through the courts; litigation costs get passed on; prone to “predatory lawsuits”; the vulnerable may not be able to afford to sue.",[10,264,265],{},"⑥ Soft law \u002F duty to make efforts — (Japan, Taiwan private, Switzerland private until 2027)",[10,267,268],{},"✅ Low resistance to adoption; useful as a transitional step; can build consensus before hardening.",[10,270,271],{},"⚠️ Almost no binding force; degenerates into a declaration; improvement depends heavily on corporate goodwill and reputational pressure.",[236,273,274],{},[10,275,276],{},"The private sector’s shared dilemma: it is either ex post (fines and lawsuits both come after the harm) or toothless (soft law). No country applies “ex-ante mandatory certification” to the private sector — which is precisely why official marks grow almost exclusively in the public sector.",[47,278,280],{"id":279},"cross-group-observations","Cross-Group Observations",[31,282,283,286],{},[34,284,285],{},"There is no single best solution; mature jurisdictions all “stack” tools. The US = procurement (③) + litigation (⑤); EU countries = monitoring (②) + market surveillance (④), plus individual litigation. A strong regime layers multiple tools that back each other up, rather than betting on one.",[34,287,288],{},"The presence or size of fines doesn’t equal effectiveness. The Netherlands has no public-sector fines yet sustains transparency pressure via comply-or-explain + a public dashboard; Spain fines the private sector up to €1M, but actual enforcement capacity remains a question mark. The real difference lies in enforcement density, not just the numbers in the statute.",[23,290,292],{"id":291},"_5-overall-observations-and-trends","5. Overall Observations and Trends",[186,294,295,298,301],{},[34,296,297],{},"The technical standard is converging globally, while regulatory tools diverge sharply. Everyone is converging on EN 301 549 \u002F WCAG 2.1 (moving to 2.2) AA; the real differences are all in “who enforces, and how.”",[34,299,300],{},"The center of gravity is shifting from “public-sector soft law \u002F ex-ante certification” toward “private-sector market surveillance + fundamental rights.” 2024–2025 is the watershed: the EU’s EAA, Japan’s reasonable-accommodation duty, India’s 2025 Supreme Court ruling and SEBI circular all push accessibility from an “aspirational target” toward a penalizable, litigable right. Switzerland in 2027 will be next.",[34,302,303],{},"“Whether there’s an official mark” ≠ “how strong the regime is.” Taiwan, Korea, and India have mandatory official marks; but Germany, Spain, and the Netherlands — countries with complete regimes — deliberately issue no official mark, opting instead for self-declaration + monitoring and leaving marks to a private, voluntary market. Portugal’s Selo, though government-run, is still merely a voluntary excellence award rather than a compliance gate.",[23,305,307],{"id":306},"reference","Reference",[47,309,311],{"id":310},"international-framework","International \u002F Framework",[10,313,314],{},[173,315,318],{"href":316,"rel":317,"target":178,"title":179},"https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fpolicies\u002F",[177],"W3C WAI, Web Accessibility Laws & Policies",[10,320,321],{},[173,322,325],{"href":323,"rel":324,"target":178,"title":179},"https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdir\u002F2016\u002F2102\u002Foj",[177],"EU Web Accessibility Directive 2016\u002F2102",[10,327,328],{},[173,329,332],{"href":330,"rel":331,"target":178,"title":179},"https:\u002F\u002Fcommission.europa.eu\u002Fstrategy-and-policy\u002Fpolicies\u002Fjustice-and-fundamental-rights\u002Fdisability\u002Feuropean-accessibility-act-eaa_en",[177],"European Accessibility Act, Directive 2019\u002F882",[10,334,335],{},[173,336,339],{"href":337,"rel":338,"target":178,"title":179},"https:\u002F\u002Faccessible-eu-centre.ec.europa.eu\u002F",[177],"EN 301 549（Accessible EU Centre）",[47,341,343],{"id":342},"taiwan","Taiwan",[10,345,346],{},[173,347,350],{"href":348,"rel":349,"target":178,"title":179},"https:\u002F\u002Flaw.moj.gov.tw\u002FLawClass\u002FLawSingle.aspx?Pcode=D0050046&FLNO=52-2",[177],"People with Disabilities Rights Protection Act, Art. 52–2",[10,352,353],{},[173,354,357],{"href":355,"rel":356,"target":178,"title":179},"https:\u002F\u002Faccessibility.moda.gov.tw\u002F",[177],"Ministry of Digital Affairs, Website Accessibility Guidelines",[47,359,361],{"id":360},"united-states","United States",[10,363,364],{},[173,365,368],{"href":366,"rel":367,"target":178,"title":179},"https:\u002F\u002Fwww.ada.gov\u002Flaw-and-regs\u002Fada\u002F",[177],"ADA",[10,370,371],{},[173,372,375],{"href":373,"rel":374,"target":178,"title":179},"https:\u002F\u002Fwww.section508.gov\u002F",[177],"Section 508",[10,377,378],{},[173,379,382],{"href":380,"rel":381,"target":178,"title":179},"https:\u002F\u002Fwww.levelaccess.com\u002Fblog\u002Fada-vs-section-508-whats-the-difference\u002F",[177],"ADA Title II 2024 rule vs. Section 508 (Level Access)",[47,384,386],{"id":385},"united-kingdom","United Kingdom",[10,388,389],{},[173,390,393],{"href":391,"rel":392,"target":178,"title":179},"https:\u002F\u002Fwww.legislation.gov.uk\u002Fuksi\u002F2018\u002F952\u002Fcontents",[177],"PSBAR 2018",[10,395,396],{},[173,397,400],{"href":398,"rel":399,"target":178,"title":179},"https:\u002F\u002Fwww.legislation.gov.uk\u002Fukpga\u002F2010\u002F15\u002Fcontents",[177],"Equality Act 2010",[10,402,403],{},[173,404,407],{"href":405,"rel":406,"target":178,"title":179},"https:\u002F\u002Fwww.gov.uk\u002Fguidance\u002Faccessibility-requirements-for-public-sector-websites-and-apps",[177],"Public-sector accessibility requirements (GOV.UK)",[47,409,411],{"id":410},"australia","Australia",[10,413,414],{},[173,415,418],{"href":416,"rel":417,"target":178,"title":179},"https:\u002F\u002Fwww.legislation.gov.au\u002FC2004A04426\u002Flatest",[177],"Disability Discrimination Act 1992",[10,420,421],{},[173,422,425],{"href":423,"rel":424,"target":178,"title":179},"https:\u002F\u002Fhumanrights.gov.au\u002Four-work\u002Fdisability-rights\u002Fworld-wide-web-access-disability-discrimination-act-advisory-notes-ver",[177],"AHRC, World Wide Web Access: DDA Advisory Notes",[47,427,429],{"id":428},"south-korea","South Korea",[10,431,432],{},[173,433,436],{"href":434,"rel":435,"target":178,"title":179},"https:\u002F\u002Felaw.klri.re.kr\u002Feng_mobile\u002Fviewer.do?hseq=55535&type=part&key=38",[177],"Act on Prohibition of Discrimination against Persons with Disabilities(KLRI English)",[10,438,439],{},[173,440,443],{"href":441,"rel":442,"target":178,"title":179},"https:\u002F\u002Fenglish.seoul.go.kr\u002Fweb-accessibility-quality-mark\u002F",[177],"Seoul, Web Accessibility Quality Mark",[47,445,447],{"id":446},"japan","Japan",[10,449,450],{},[173,451,454],{"href":452,"rel":453,"target":178,"title":179},"https:\u002F\u002Fwww8.cao.go.jp\u002Fshougai\u002Fsuishin\u002Flaw_h25-65.html",[177],"Act on the Elimination of Discrimination against Persons with Disabilities (Cabinet Office)",[10,456,457],{},[173,458,461],{"href":459,"rel":460,"target":178,"title":179},"https:\u002F\u002Fwww.amt-law.com\u002Fasset\u002Fpdf\u002Fbulletins9_pdf\u002FLELB63.pdf",[177],"1 April 2024 reasonable-accommodation duty (Anderson Mōri & Tomotsune) ",[47,463,465],{"id":464},"india","India",[10,467,468],{},[173,469,472],{"href":470,"rel":471,"target":178,"title":179},"https:\u002F\u002Fniepvd.nic.in\u002Fthe-rights-of-persons-with-disabilities-rpwd-act-2016\u002F",[177],"RPwD Act 2016",[10,474,475],{},[173,476,479],{"href":477,"rel":478,"target":178,"title":179},"https:\u002F\u002Fguidelines.india.gov.in\u002F",[177],"GIGW 3.0",[10,481,482],{},[173,483,486],{"href":484,"rel":485,"target":178,"title":179},"https:\u002F\u002Fwww.stqc.gov.in\u002Fwebsite-quality-certification-0",[177],"STQC CQW",[10,488,489],{},[173,490,493],{"href":491,"rel":492,"target":178,"title":179},"https:\u002F\u002Fwww.deque.com\u002Fblog\u002Fsebi-sets-a-new-standard-for-digital-accessibility-in-finance-in-india\u002F",[177],"SEBI 2025 digital accessibility (Deque)",[47,495,497],{"id":496},"germany","Germany",[10,499,500],{},[173,501,504],{"href":502,"rel":503,"target":178,"title":179},"https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbfsg\u002F",[177],"BGG \u002F BITV 2.0 \u002F BFSG",[10,506,507],{},[173,508,511],{"href":509,"rel":510,"target":178,"title":179},"https:\u002F\u002Fms.sachsen-anhalt.de\u002Fthemen\u002Fmenschen-mit-behinderungen\u002Faktuelles\u002Fmarktueberwachungsstelle-der-laender-fuer-die-barrierefreiheit-von-produkten-und-dienstleistungen",[177],"States’ joint market-surveillance body (Magdeburg)",[47,513,515],{"id":514},"france","France",[10,517,518],{},[173,519,522],{"href":520,"rel":521,"target":178,"title":179},"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Floda\u002Farticle_lc\u002FLEGIARTI000037388867\u002F",[177],"Loi 2005-102, art. 47",[10,524,525],{},[173,526,529],{"href":527,"rel":528,"target":178,"title":179},"https:\u002F\u002Faccessibilite.numerique.gouv.fr\u002F",[177],"RGAA 4.1",[10,531,532],{},[173,533,536],{"href":534,"rel":535,"target":178,"title":179},"https:\u002F\u002Fwww.arcom.fr\u002Fnous-connaitre\u002Fnos-missions\u002Fgarantir-le-pluralisme-et-la-cohesion-sociale\u002Fles-droits-des-personnes-handicapees\u002Faccessibilite-des-sites-et-des-services-numeriques",[177],"ARCOM oversight ",[47,538,540],{"id":539},"spain","Spain",[10,542,543],{},[173,544,547],{"href":545,"rel":546,"target":178,"title":179},"https:\u002F\u002Fwww.boe.es\u002Fbuscar\u002Fact.php?id=BOE-A-2018-12699",[177],"RD 1112\u002F2018",[10,549,550],{},[173,551,554],{"href":552,"rel":553,"target":178,"title":179},"https:\u002F\u002Fwww.boe.es\u002Fbuscar\u002Fact.php?id=BOE-A-2023-11022",[177],"RDL 11\u002F2023",[47,556,558],{"id":557},"portugal","Portugal",[10,560,561],{},[173,562,565],{"href":563,"rel":564,"target":178,"title":179},"https:\u002F\u002Fwww.acessibilidade.gov.pt\u002Fmudanca\u002Fdl-n-o-83-2018\u002F",[177],"DL 83\u002F2018",[10,567,568],{},[173,569,572],{"href":570,"rel":571,"target":178,"title":179},"https:\u002F\u002Fwww.acessibilidade.gov.pt\u002F",[177],"DL 82\u002F2022（EAA 轉化）AMA \u002F acessibilidade.gov.pt",[47,574,576],{"id":575},"austria","Austria",[10,578,579],{},[173,580,583],{"href":581,"rel":582,"target":178,"title":179},"https:\u002F\u002Fwww.ris.bka.gv.at\u002FGeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20010727",[177],"WZG（RIS）",[10,585,586],{},[173,587,590],{"href":588,"rel":589,"target":178,"title":179},"https:\u002F\u002Fffg.at\u002Fbarrierefreiheit\u002FWZG-Anwendbarkeit",[177],"FFG Monitoring and Complaints Office",[10,592,593],{},[173,594,597],{"href":595,"rel":596,"target":178,"title":179},"https:\u002F\u002Fwww.digitalbarrierefrei.at\u002Fen\u002F",[177],"Digital Barrierefrei",[47,599,601],{"id":600},"belgium","Belgium",[10,603,604],{},[173,605,608],{"href":606,"rel":607,"target":178,"title":179},"https:\u002F\u002Fbosa.belgium.be\u002Ffr\u002Fregulations\u002Floi-du-19-juillet-2018-accessibilite",[177],"Law of 19 July 2018 (BOSA)",[10,610,611],{},[173,612,615],{"href":613,"rel":614,"target":178,"title":179},"https:\u002F\u002Faccessibility.belgium.be\u002Ffr\u002Fmissions-et-plaintes",[177],"Belgian Web Accessibility (monitoring & complaints)",[47,617,619],{"id":618},"netherlands","Netherlands",[10,621,622],{},[173,623,626],{"href":624,"rel":625,"target":178,"title":179},"https:\u002F\u002Fwww.digitoegankelijk.nl\u002Fwetgeving\u002Fbeleid-nederland-en-europa",[177],"DigiToegankelijk (policy)",[10,628,629],{},[173,630,633],{"href":631,"rel":632,"target":178,"title":179},"https:\u002F\u002Fwww.levelaccess.com\u002Fwp-content\u002Fuploads\u002F2025\u002F06\u002FNetherlands-Digital-Accessibility-Laws.pdf",[177],"Netherlands Digital Accessibility Laws（Level Access）",[47,635,637],{"id":636},"switzerland","Switzerland",[10,639,640],{},[173,641,644],{"href":642,"rel":643,"target":178,"title":179},"https:\u002F\u002Fwww.bit.admin.ch\u002Fen\u002Faccessibility-in-the-federal-administration",[177],"BehiG \u002F Accessibility in the federal administration (bit.admin.ch)",[10,646,647],{},[173,648,651],{"href":649,"rel":650,"target":178,"title":179},"https:\u002F\u002Fhaerting.ch\u002Fen\u002Finsights\u002Faccessible-websites-and-apps-new-obligations-under-the-draft-of-the-new-swiss-disability-discrimination-act-behig\u002F",[177],"BehiG revision draft (2027, Härting)",[10,653,654],{},"--",[10,656,657],{},"Information compiled as of June 2026; it may contain errors, and corrections are welcome. The next article will analyze each country’s certification marks.",{"title":659,"searchDepth":660,"depth":660,"links":661},"",2,[662,664,665,666],{"id":25,"depth":663,"text":26},3,{"id":202,"depth":663,"text":203},{"id":291,"depth":663,"text":292},{"id":306,"depth":663,"text":307},"2026-06-09","What started as a simple effort to collect each country’s marks, regulations, and testing criteria turned into something bigger — halfway through, I realized I first needed to understand each country’s policy.",false,"md",{},true,null,"\u002Fen\u002Fblog\u002Fa11y-world-rules",{"title":5,"description":668},"en\u002Fblog\u002Fa11y-world-rules",[678,679,680],"Accessibility","A11Y","AccessibilityBadge","XMqA3nmB3sE7rVe8rqfTYanqBrWujEC0u7Z1DyU2Nbo",{"id":683,"title":684,"body":685,"date":667,"description":1447,"draft":669,"extension":670,"meta":1448,"navigation":672,"ogImage":673,"path":1449,"seo":1450,"stem":1451,"tags":1452,"translationKey":673,"updatedAt":673,"__hash__":1459},"blog_zh\u002Fzh\u002Fblog\u002Fa11y-world-rules.md","全球網頁無障礙制度設計：各國法規、公私部門執行工具與驅動力比較",{"type":7,"value":686,"toc":1438},[687,690,700,703,707,710,721,724,728,747,751,755,758,769,773,776,790,794,797,820,824,829,833,836,1035,1038,1052,1056,1060,1063,1066,1069,1072,1075,1078,1081,1084,1087,1092,1096,1099,1102,1105,1108,1111,1114,1117,1120,1123,1128,1131,1139,1143,1146,1157,1159,1162,1176,1179,1183,1187,1192,1197,1202,1207,1209,1215,1221,1223,1228,1233,1239,1241,1246,1251,1257,1259,1264,1269,1271,1277,1282,1284,1290,1296,1298,1303,1308,1313,1319,1321,1326,1332,1334,1339,1344,1350,1352,1357,1362,1364,1369,1374,1376,1381,1387,1392,1394,1400,1406,1408,1414,1419,1421,1427,1433,1435],[23,688,689],{"id":689},"前言",[10,691,692,693,699],{},"最近我正在幫我的 Accesserty Signal",[173,694,698],{"href":695,"rel":696,"target":178,"title":697},"https:\u002F\u002Faccesserty.com\u002Fsignal",[177],"另開新視窗","連結"," 擴充標章功能。原本只是單純想收集各國的標章、法規與檢測項目，但收集到一半時發現——應該要先理解各國的「政策」才行，於是著手手動收集；然而要涵蓋的國家與細節實在太多，不得不借助 AI 協助整理與分析，也順便分享給大家閱讀。以下資料可能有誤，歡迎專家不吝指正。 預計下一篇將分析各國標章概況。",[10,701,702],{},"先把本文制度地基講清楚：\n盤點 臺灣、美國、英國、澳洲、韓國、日本、印度，以及歐盟框架下的德國、法國、西班牙、葡萄牙、奧地利、比利時、荷蘭與非歐盟的瑞士，共十六個法域的網頁無障礙制度設計。重點不在「技術標準是 WCAG 幾點幾」（這幾乎全球趨同於 WCAG 2.1／2.2 AA），而在一個更根本的問題——到底是用什麼力量，讓網站願意做到無障礙？ 是政府發一張證書、派人定期抽查、開一張罰單，還是等身心障礙者上法院告？各國的答案，差異遠比想像中大。",[23,704,706],{"id":705},"一分析框架先分公部門與民間再看用哪種工具","一、分析框架：先分公部門與民間，再看用哪種工具",[10,708,709],{},"比較各國制度時，最常見的錯誤是把一個國家當成「一格」。事實上幾乎每個法域，對公部門與對民間都是兩套不同的法、不同的執行者、不同的後果：",[31,711,712,715,718],{},[34,713,714],{},"歐盟用兩條不同指令——WAD（管公部門）與 EAA（管民間）；",[34,716,717],{},"德國公部門（BITV）無罰則、民間（BFSG）卻可罰 €10 萬；",[34,719,720],{},"臺灣對政府網站法律強制取得標章、對民間幾乎零要求。",[10,722,723],{},"所以本文採雙軸分析：先區分「公部門 \u002F 民間」，再用一套共通的「機制詞彙」標定每個法域落在哪裡。",[47,725,727],{"id":726},"六種制度工具機制詞彙","六種制度工具（機制詞彙）",[10,729,730,731,734,735,737,738,740,741,743,744,746],{},"① 強制認證制：事前、政府或指定機構檢測、發證，法律要求特定對象取得",[732,733],"br",{},"\n② 自我聲明＋政府監測制：持續、受規範者自評並公布無障礙聲明，政府抽樣複查＋申訴",[732,736],{},"\n③ 採購／供應鏈槓桿制：進場、「政府只買無障礙的東西／不合規喪失標案資格」",[732,739],{},"\n④ 市場監督＋罰鍰制：事後、市場監督機關查核、命令改善、課罰鍰乃至下架",[732,742],{},"\n⑤ 反歧視訴訟驅動制：事後、無事前認證，靠個案申訴、民事訴訟、行政救濟",[732,745],{},"\n⑥ 軟法／努力義務制：--、無強制門檻與罰則，靠行政指導與聲譽壓力",[23,748,750],{"id":749},"二各法域制度檢視依主導模式分組","二、各法域制度檢視（依主導模式分組）",[47,752,754],{"id":753},"群組-a政府強制認證型東亞印度","群組 A：政府強制認證型（東亞＋印度）",[10,756,757],{},"這群共同點是——政府（或政府指定機構）扮演發證者，並把「取得認證」寫進法律或政策。",[31,759,760,763,766],{},[34,761,762],{},"臺灣：母法《身心障礙者權益保障法》第 52 條之 2 明文要求政府機關、學校網站「應通過第一優先等級以上無障礙檢測，並取得認證標章」。數位發展部建平台，含自我、機器、人工（含身障者）檢測。標準以 WCAG 2.1 AA 為底、預計 2026 年底升 2.2。公部門強制、民間無規範。",[34,764,765],{},"韓國：以《禁止歧視身心障礙者法》第 21 條為核心，科學技術資訊通信部（MSIT）指定三家認證機構核發官方品質標章，標準 KWCAG 2.2。罰則相對硬——惡意歧視最高 3 年徒刑或 3,000 萬韓元罰金，另有行政罰鍰、喪失標案資格。公部門認證、民間靠反歧視法強制（分階段）。",[34,767,768],{},"印度：以《身心障礙者權利法》（RPwD 2016）為母法，MeitY 旗下 STQC 官方機構檢測、核發 CQW 認證（把無障礙、資安、易用性綁在一起），標準 GIGW 3.0（WCAG 2.1 AA）。罰則初犯 ₹1 萬、累犯最高 ₹5 lakh。2025 年 SEBI 通函首次把無障礙強制擴及金融業——印度正從公部門向民間擴張。",[47,770,772],{"id":771},"群組-b反歧視訴訟驅動型普通法系日本","群組 B：反歧視訴訟驅動型（普通法系＋日本）",[10,774,775],{},"這群不設政府事前認證，把無障礙定位為「反歧視／平等權」，靠申訴與訴訟推動。",[31,777,778,781,784,787],{},[34,779,780],{},"美國：雙軌——ADA（反歧視，Title II 州\u002F地方政府、Title III 民間）＋ Section 508（聯邦採購）。標準須分層：ADA Title II 2024 新規採 WCAG 2.1 AA、Section 508 仍是 WCAG 2.0 AA、Title III 無法定標準靠判例。著名的「訴訟驅動」國家，每年數千件網站官司。",[34,782,783],{},"英國：公部門《2018 公部門無障礙規範》（PSBAR，轉化 WAD），GDS 監測、EHRC 執法；民間《2010 平等法》要求「合理調整」，身障者可向郡法院求償。標準綁「WCAG as amended」（現行 2.2 AA）。脫歐後未轉化 EAA，民間僅靠平等法。",[34,785,786],{},"澳洲：《1992 身心障礙歧視法》（DDA）涵蓋公私，但無法定技術標準、無行政罰鍰；AHRC 受理申訴→調解→聯邦法院判賠並命改善（指標案 Maguire v SOCOG 2000）。聯邦政府另透過 DTA《Digital Service Standard 2.0》要求採最新 WCAG（現 2.2 AA）。",[34,788,789],{},"日本：《障害者差別解消法》第 7 條（政府）、第 8 條（民間），標準 JIS X 8341-3:2016（對應 WCAG 2.0，實務向 2.1）。2024\u002F4\u002F1 起民間「合理調整」從努力義務升為法定義務，但網頁無障礙仍偏努力目標、幾乎無直接罰則（唯一罰鍰 ¥20 萬針對拒絕政府調查\u002F虛偽報告）。典型「軟法」。",[47,791,793],{"id":792},"群組-c歐盟雙指令型wad-公部門eaa-民間","群組 C：歐盟雙指令型（WAD 公部門＋EAA 民間）",[10,795,796],{},"這群結構高度一致：公部門源自 WAD（2016\u002F2102）、走自我聲明＋政府監測；民間源自 EAA（2019\u002F882，2025\u002F6\u002F28 適用）、走市場監督＋罰鍰。差異在「監測的牙齒」與「罰鍰金額」。標準一律 EN 301 549 → WCAG 2.1 AA。",[31,798,799,802,805,808,811,814,817],{},[34,800,801],{},"德國：三層——BGG（母法）＋BITV 2.0（公部門）＋BFSG（民間）。公部門無罰則，靠團體訴訟（Verbandsklage）；民間由各邦聯合市場監督機關（設於 Magdeburg）查處，最高罰 €10 萬。",[34,803,804],{},"法國：第 2005-102 號法第 47 條＋RGAA 4.1.2，DINUM 制定規範。特別之處：2023 年起 ARCOM 對公部門也有實質裁罰權——申報義務缺失 €25,000、無障礙不合規 €50,000，且持續未改正每年可重罰。民間（EAA）由 DGCCRF 統籌市場監督，罰金累計可達 €250,000。法國是少數讓公部門監測「長出牙齒」的歐盟國。",[34,806,807],{},"西班牙：公部門 RD 1112\u002F2018＋無障礙觀測站（Observatorio）監測；民間 RDL 11\u002F2023。罰鍰分體系——公部門監督約 €3,000–100,000，民間／EAA 級距最高可達 €100 萬（非常嚴重），是歐盟中上限最高者之一。無官方標章，AENOR、Ilunion 屬民間自願認證。",[34,809,810],{},"葡萄牙：公部門 DL 83\u002F2018，AMA 監測並營運官方但自願的「易用性與無障礙標章 Selo」（金\u002F銀\u002F銅）；民間 DL 82\u002F2022，由 ANACOM、ASAE 等多家部門別監理機關稽查，法人罰鍰最高約 €44,892。",[34,812,813],{},"奧地利：公部門 WZG，FFG（研究促進署）監測；民間 BaFG（2025），社會部服務處（Sozialministeriumservice）市場監督，最高罰 €8 萬。WACA 為民間自願標章。",[34,815,816],{},"比利時：聯邦制使法源分散——1 部聯邦法（2018\u002F7\u002F19）＋多個地區法令；BOSA 轄下的數位無障礙署監測協調。民間 EAA 由聯邦經濟部等執行。AnySurfer 為民間自願標章。",[34,818,819],{},"荷蘭：公部門《政府數位無障礙臨時法令》，採「遵循或解釋（comply-or-explain）」＋Logius 查核聲明＋公開 Dashboard，無罰鍰；民間《實施法》由消費者暨市場管理局（ACM）監督，最高罰 €9 萬並可禁止提供服務。Drempelvrij\u002FDigital Inclusive 為民間自願標章。",[47,821,823],{"id":822},"群組-d非歐盟自成一套","群組 D：非歐盟自成一套",[31,825,826],{},[34,827,828],{},"瑞士：《身心障礙者平等法》（BehiG，2004）＋eCH-0059 標準（WCAG 2.1 AA），目前僅及於聯邦行政機關、無罰鍰、靠當事人主張權利。非歐盟、不適用 EAA。修法中，預計最快 2027\u002F1\u002F1 才把義務擴及民間線上服務。",[23,830,832],{"id":831},"三公私-機制定位矩陣","三、公私 × 機制定位矩陣",[10,834,835],{},"把十六個法域同時放上「公部門」／「民間」兩軸。機制代碼沿用上一節：① 強制認證、② 自我聲明＋監測、③ 採購／供應鏈槓桿、④ 市場監督＋罰鍰、⑤ 反歧視訴訟、⑥ 軟法／努力義務。",[837,838,839,855],"table",{},[840,841,842],"thead",{},[843,844,845,849,852],"tr",{},[846,847,848],"th",{},"法域",[846,850,851],{},"公部門機制",[846,853,854],{},"民間機制",[856,857,858,870,881,892,903,914,925,936,947,958,969,980,991,1002,1013,1024],"tbody",{},[843,859,860,864,867],{},[861,862,863],"td",{},"臺灣",[861,865,866],{},"① 強制認證（母法要求取得標章）",[861,868,869],{},"⑥ 無",[843,871,872,875,878],{},[861,873,874],{},"韓國",[861,876,877],{},"① 政府指定機構認證（官方標章）",[861,879,880],{},"⑤ 反歧視法（分階段強制＋刑\u002F罰）",[843,882,883,886,889],{},[861,884,885],{},"印度",[861,887,888],{},"① STQC、CQW 強制認證",[861,890,891],{},"④⑤ RPwD＋SEBI(2025) 新興強制",[843,893,894,897,900],{},[861,895,896],{},"美國",[861,898,899],{},"③ Section 508 採購＋⑤ ADA Title II",[861,901,902],{},"⑤ ADA Title III 訴訟",[843,904,905,908,911],{},[861,906,907],{},"英國",[861,909,910],{},"② PSBAR 自我聲明＋GDS 監測（EHRC 執法）",[861,912,913],{},"⑤ 平等法訴訟",[843,915,916,919,922],{},[861,917,918],{},"澳洲",[861,920,921],{},"⑤／⑥ DDA＋DSS（政府採 WCAG，靠申訴）",[861,923,924],{},"⑤ DDA 訴訟",[843,926,927,930,933],{},[861,928,929],{},"日本",[861,931,932],{},"⑥ 努力義務＋軟性引導",[861,934,935],{},"⑥ 軟法（2024 合理調整法定義務、無罰則）",[843,937,938,941,944],{},[861,939,940],{},"歐盟",[861,942,943],{},"② WAD",[861,945,946],{},"④ EAA",[843,948,949,952,955],{},[861,950,951],{},"德國",[861,953,954],{},"② BITV（無罰則／團體訴訟）",[861,956,957],{},"④ BFSG（市場監督＋€10萬）",[843,959,960,963,966],{},[861,961,962],{},"法國",[861,964,965],{},"②＋④ RGAA＋ARCOM（可罰 €5萬）",[861,967,968],{},"④ EAA（DGCCRF，累計 €25萬）",[843,970,971,974,977],{},[861,972,973],{},"西班牙",[861,975,976],{},"② RD 1112＋Observatorio 監測",[861,978,979],{},"④ RDL 11\u002F2023（最高 €100萬）",[843,981,982,985,988],{},[861,983,984],{},"葡萄牙",[861,986,987],{},"② DL 83\u002F2018＋AMA 監測（＋自願 Selo）",[861,989,990],{},"④ DL 82\u002F2022（部門別監理）",[843,992,993,996,999],{},[861,994,995],{},"奧地利",[861,997,998],{},"② WZG＋FFG 監測",[861,1000,1001],{},"④ BaFG（€8萬）",[843,1003,1004,1007,1010],{},[861,1005,1006],{},"比利時",[861,1008,1009],{},"② 2018 法＋BOSA 監測",[861,1011,1012],{},"④ EAA（聯邦經濟部）",[843,1014,1015,1018,1021],{},[861,1016,1017],{},"荷蘭",[861,1019,1020],{},"② 臨時法＋Logius（comply-or-explain）",[861,1022,1023],{},"④ EAA（ACM，€9萬）",[843,1025,1026,1029,1032],{},[861,1027,1028],{},"瑞士",[861,1030,1031],{},"②／⑥ BehiG 聯邦自我落實",[861,1033,1034],{},"無（2027 才擴及民間）",[47,1036,1037],{"id":1037},"從矩陣讀出的四個結構性事實",[31,1039,1040,1043,1046,1049],{},[34,1041,1042],{},"公部門集中在「認證／監測」，民間則明顯分兩條路。 公部門欄不是①就是②；民間欄則裂成兩種法律傳統——普通法系（美、英、澳）＋東亞反歧視（日、韓）靠⑤訴訟，歐盟靠④市場監督＋罰鍰。",[34,1044,1045],{},"「民間」這一格長期最弱，2024–2025 才被補起來。 臺灣民間仍近乎空白、日本到 2024 才硬化、歐盟 EAA 與印度 SEBI 都在 2025 才上路、瑞士要等 2027。網頁無障礙的執法重心，正從公部門外溢到民間。",[34,1047,1048],{},"同一個②「監測」機制，但差很多。 多數歐盟國公部門無罰鍰（德、荷、比、奧、葡），靠透明與團體訴訟；法國比較不一樣，ARCOM 對公部門可罰 €5 萬並 name & shame；英國則無罰鍰但 EHRC 有調查與訴訟權。",[34,1050,1051],{},"罰鍰金額（民間\u002FEAA）落差極大。 葡萄牙約 €4.5 萬、奧地利 €8 萬、荷蘭 €9 萬、德國 €10 萬、法國累計 €25 萬，西班牙最高 €100 萬。同一條 EAA，各國「定價」天差地別。",[23,1053,1055],{"id":1054},"四各機制優缺點分析分公部門民間兩組","四、各機制優缺點分析（分公部門、民間兩組）",[47,1057,1059],{"id":1058},"甲公部門常見機制","甲、公部門常見機制",[10,1061,1062],{},"① 強制認證（臺、韓、印）",[10,1064,1065],{},"標準統一、通過與否明確、可公開查核；對政府網站效力最強；天然產生「官方標章」可供信任",[10,1067,1068],{},"行政成本高、易僵化於發證當下、難規模化；認證後品質可能回落（一次性過關）",[10,1070,1071],{},"② 自我聲明＋監測（歐盟公部門、英）",[10,1073,1074],{},"門檻低、可覆蓋海量網站；持續監測反映現況；不需龐大發證機器",[10,1076,1077],{},"自評可信度低、監測僅抽樣；罰則弱時流於形式（聲明漂亮、實際不無障礙）",[10,1079,1080],{},"③ 採購／供應鏈槓桿（美 Section 508）",[10,1082,1083],{},"不必另立罰則即驅動大量供應商；示範效果強、責任鏈清楚",[10,1085,1086],{},"只及於與政府交易者；易被「自我宣告（VPAT）」灌水",[236,1088,1089],{},[10,1090,1091],{},"公部門的共同弱點：力度雖強，邊界卻止於政府自己。臺、印的強制認證對民間無外溢力；歐盟監測制覆蓋廣卻深度不足，且多數國家對公部門根本沒有罰鍰（法國是少數例外）。",[47,1093,1095],{"id":1094},"乙民間常見機制","乙、民間常見機制",[10,1097,1098],{},"④ 市場監督＋罰鍰（歐盟民間、印 SEBI）",[10,1100,1101],{},"經濟嚇阻力強、明確覆蓋民間、責任歸屬清楚；可下架\u002F禁營運",[10,1103,1104],{},"事後性（傷害已發生）、執法量能有限；中小企業負擔重、易靠豁免規避；金額各國落差大、2025 才上路成效待觀察",[10,1106,1107],{},"⑤ 反歧視訴訟驅動（美、英、澳、韓）",[10,1109,1110],{},"賦予當事人實權、判例能快速拉高標準、不需事前行政機器",[10,1112,1113],{},"高度不確定、標準由法院碎片化形成；訴訟成本轉嫁、易生「掠奪性訴訟」；弱勢者未必告得起",[10,1115,1116],{},"⑥ 軟法／努力義務（日、臺民間、瑞士民間至 2027）",[10,1118,1119],{},"推行阻力小、易作過渡；可先建共識再硬化",[10,1121,1122],{},"幾乎無強制力、淪為宣示；改善高度依賴企業善意與聲譽壓力",[236,1124,1125],{},[10,1126,1127],{},"民間的共同難題：要嘛事後（罰鍰、訴訟都在傷害發生後），要嘛無力（軟法）。沒有任何一國對民間採「事前強制認證」——這正說明為何官方標章幾乎只長在公部門。",[47,1129,1130],{"id":1130},"跨組綜合觀察",[31,1132,1133,1136],{},[34,1134,1135],{},"沒有單一最佳解，成熟法域都是「疊加」。 美國＝採購(③)＋訴訟(⑤)；歐盟各國＝監測(②)＋市場監督(④)，再加個人訴訟。強的制度是多工具互相補位，而非單押一種。",[34,1137,1138],{},"罰鍰的「有無」與「高低」並不等於成效。 荷蘭公部門無罰鍰卻靠 comply-or-explain＋公開 Dashboard 維持透明壓力；西班牙民間罰到 €100 萬，但實際執法量能仍是問號。制度的真正差別在執行密度，不只在條文上的數字。",[23,1140,1142],{"id":1141},"五綜合觀察與趨勢","五、綜合觀察與趨勢",[10,1144,1145],{},"把十六個法域攤開，可以看到三個清楚的走向：",[31,1147,1148,1151,1154],{},[34,1149,1150],{},"技術標準全球趨同、制度工具高度分歧。 大家都收斂到 EN 301 549 \u002F WCAG 2.1（漸進 2.2）AA；真正的差異全在「誰來逼、怎麼逼」。",[34,1152,1153],{},"重心從「公部門軟法／事前認證」走向「民間市場監督＋基本權」。 2024–2025 是分水嶺：歐盟 EAA、日本合理調整義務化、印度最高法院 2025 判決與 SEBI 通函，都把無障礙從「努力目標」推向「可罰、可訴的權利」。瑞士 2027 將是下一棒。",[34,1155,1156],{},"「有沒有官方標章」≠「制度強不強」。 臺、韓、印有強制官方標章；但德、西、荷這些制度完整的國家刻意不設官方標章，改用自我聲明＋監測，把標章讓給民間自願市場；葡萄牙的 Selo 雖由政府營運，仍只是自願卓越獎而非合規門檻。",[10,1158,654],{},[10,1160,1161],{},"下一篇預告：當「標章」遇上不同制度\n本文畫出了一張「公私 × 機制」的制度地圖。而在這張地圖上，「無障礙標章」其實落在很不一樣的位置：",[31,1163,1164,1167,1170,1173],{},[34,1165,1166],{},"在臺灣，標章是法律強制的守門員——政府網站沒拿到就不合規；",[34,1168,1169],{},"在韓國、印度，標章是政府或指定機構核發的官方憑證；",[34,1171,1172],{},"在德國、西班牙、荷蘭、奧地利、比利時、瑞士，官方根本不發標章，市面上的 WACA、AnySurfer、AENOR、Ilunion、Access for all、Drempelvrij 全是民間自願的信任標記——它是加分項，不是門檻；",[34,1174,1175],{},"而葡萄牙的 Selo 則卡在中間：政府營運，卻是自願的卓越獎。",[10,1177,1178],{},"也就是說，同樣叫「無障礙標章」，有的是「過不了就違法」的關卡，有的只是「做到了給你拍拍手」的獎章。下一篇，我會把各國的標章逐一攤開——誰發的、怎麼分級、有沒有有效期限、查不查得到名單、設計長什麼樣——並對照本文這張制度地圖，看看每一枚標章，到底站在哪個位置。",[23,1180,1182],{"id":1181},"reference-列表","Reference 列表",[47,1184,1186],{"id":1185},"國際框架","國際／框架",[10,1188,1189],{},[173,1190,318],{"href":316,"rel":1191,"target":178,"title":697},[177],[10,1193,1194],{},[173,1195,325],{"href":323,"rel":1196,"target":178,"title":697},[177],[10,1198,1199],{},[173,1200,332],{"href":330,"rel":1201,"target":178,"title":697},[177],[10,1203,1204],{},[173,1205,339],{"href":337,"rel":1206,"target":178,"title":697},[177],[47,1208,863],{"id":863},[10,1210,1211],{},[173,1212,1214],{"href":348,"rel":1213,"target":178,"title":697},[177],"身心障礙者權益保障法第 52-2 條",[10,1216,1217],{},[173,1218,1220],{"href":355,"rel":1219,"target":178,"title":697},[177],"數位發展部《網站無障礙規範》",[47,1222,896],{"id":896},[10,1224,1225],{},[173,1226,368],{"href":366,"rel":1227,"target":178,"title":697},[177],[10,1229,1230],{},[173,1231,375],{"href":373,"rel":1232,"target":178,"title":697},[177],[10,1234,1235],{},[173,1236,1238],{"href":380,"rel":1237,"target":178,"title":697},[177],"ADA Title II 2024 規則 vs Section 508（WCAG 2.1\u002F2.0 比較，Level Access）",[47,1240,907],{"id":907},[10,1242,1243],{},[173,1244,393],{"href":391,"rel":1245,"target":178,"title":697},[177],[10,1247,1248],{},[173,1249,400],{"href":398,"rel":1250,"target":178,"title":697},[177],[10,1252,1253],{},[173,1254,1256],{"href":405,"rel":1255,"target":178,"title":697},[177],"公部門無障礙要求（GOV.UK）",[47,1258,918],{"id":918},[10,1260,1261],{},[173,1262,418],{"href":416,"rel":1263,"target":178,"title":697},[177],[10,1265,1266],{},[173,1267,425],{"href":423,"rel":1268,"target":178,"title":697},[177],[47,1270,874],{"id":874},[10,1272,1273],{},[173,1274,1276],{"href":434,"rel":1275,"target":178,"title":697},[177],"Act on Prohibition of Discrimination against Persons with Disabilities（KLRI 英譯）",[10,1278,1279],{},[173,1280,443],{"href":441,"rel":1281,"target":178,"title":697},[177],[47,1283,929],{"id":929},[10,1285,1286],{},[173,1287,1289],{"href":452,"rel":1288,"target":178,"title":697},[177],"障害者差別解消法（內閣府）",[10,1291,1292],{},[173,1293,1295],{"href":459,"rel":1294,"target":178,"title":697},[177],"2024\u002F4\u002F1 合理調整義務化（Anderson Mōri & Tomotsune）",[47,1297,885],{"id":885},[10,1299,1300],{},[173,1301,472],{"href":470,"rel":1302,"target":178,"title":697},[177],[10,1304,1305],{},[173,1306,479],{"href":477,"rel":1307,"target":178,"title":697},[177],[10,1309,1310],{},[173,1311,486],{"href":484,"rel":1312,"target":178,"title":697},[177],[10,1314,1315],{},[173,1316,1318],{"href":491,"rel":1317,"target":178,"title":697},[177],"SEBI 2025 數位無障礙（Deque）",[47,1320,951],{"id":951},[10,1322,1323],{},[173,1324,504],{"href":502,"rel":1325,"target":178,"title":697},[177],[10,1327,1328],{},[173,1329,1331],{"href":509,"rel":1330,"target":178,"title":697},[177],"各邦市場監督機關（Magdeburg）",[47,1333,962],{"id":962},[10,1335,1336],{},[173,1337,522],{"href":520,"rel":1338,"target":178,"title":697},[177],[10,1340,1341],{},[173,1342,529],{"href":527,"rel":1343,"target":178,"title":697},[177],[10,1345,1346],{},[173,1347,1349],{"href":534,"rel":1348,"target":178,"title":697},[177],"ARCOM 無障礙監管",[47,1351,973],{"id":973},[10,1353,1354],{},[173,1355,547],{"href":545,"rel":1356,"target":178,"title":697},[177],[10,1358,1359],{},[173,1360,554],{"href":552,"rel":1361,"target":178,"title":697},[177],[47,1363,984],{"id":984},[10,1365,1366],{},[173,1367,565],{"href":563,"rel":1368,"target":178,"title":697},[177],[10,1370,1371],{},[173,1372,572],{"href":570,"rel":1373,"target":178,"title":697},[177],[47,1375,995],{"id":995},[10,1377,1378],{},[173,1379,583],{"href":581,"rel":1380,"target":178,"title":697},[177],[10,1382,1383],{},[173,1384,1386],{"href":588,"rel":1385,"target":178,"title":697},[177],"FFG 監測暨申訴處",[10,1388,1389],{},[173,1390,597],{"href":595,"rel":1391,"target":178,"title":697},[177],[47,1393,1006],{"id":1006},[10,1395,1396],{},[173,1397,1399],{"href":606,"rel":1398,"target":178,"title":697},[177],"Loi du 19 juillet 2018（BOSA）",[10,1401,1402],{},[173,1403,1405],{"href":613,"rel":1404,"target":178,"title":697},[177],"Belgian Web Accessibility（監測與申訴）",[47,1407,1017],{"id":1017},[10,1409,1410],{},[173,1411,1413],{"href":624,"rel":1412,"target":178,"title":697},[177],"DigiToegankelijk（政策）",[10,1415,1416],{},[173,1417,633],{"href":631,"rel":1418,"target":178,"title":697},[177],[47,1420,1028],{"id":1028},[10,1422,1423],{},[173,1424,1426],{"href":642,"rel":1425,"target":178,"title":697},[177],"BehiG \u002F 聯邦行政無障礙（bit.admin.ch）",[10,1428,1429],{},[173,1430,1432],{"href":649,"rel":1431,"target":178,"title":697},[177],"BehiG 修法草案（2027，Härting）",[10,1434,654],{},[10,1436,1437],{},"本文資料整理截至 2026 年 6 月，可能有誤，歡迎指正。下一篇將分析各國標章概況。",{"title":659,"searchDepth":660,"depth":660,"links":1439},[1440,1441,1442,1443,1444,1445,1446],{"id":689,"depth":663,"text":689},{"id":705,"depth":663,"text":706},{"id":749,"depth":663,"text":750},{"id":831,"depth":663,"text":832},{"id":1054,"depth":663,"text":1055},{"id":1141,"depth":663,"text":1142},{"id":1181,"depth":663,"text":1182},"最近我正在幫我的 Accesserty Signal 擴充標章功能。原本只是單純想收集各國的標章、法規與檢測項目，但收集到一半時發現——應該要先理解各國的「政策」才行",{},"\u002Fzh\u002Fblog\u002Fa11y-world-rules",{"title":684,"description":1447},"zh\u002Fblog\u002Fa11y-world-rules",[678,679,1453,1454,1455,1456,1457,1458],"無障礙網頁設計","數位無障礙","數位平權","包容性設計","無障礙網頁","無障礙標章","pDbas8B0ipAYsne70oFzDaT9RdCAZN9hLL7xmRuaBJc",[1461,1747,2327,4622,5057,5162,5206,5345,5523,5574,5815,6001],{"id":1462,"title":1463,"body":1464,"date":1733,"description":1734,"draft":669,"extension":670,"meta":1735,"navigation":672,"ogImage":673,"path":1736,"seo":1737,"stem":1738,"tags":1739,"translationKey":1745,"updatedAt":673,"__hash__":1746},"blog_en\u002Fen\u002Fblog\u002Fai-reliable-researcher.md","AI Is Great at Research — But Is It a Reliable Researcher? So I Just Asked It",{"type":7,"value":1465,"toc":1720},[1466,1471,1475,1478,1481,1484,1488,1491,1494,1499,1502,1510,1513,1517,1520,1523,1526,1530,1533,1539,1548,1554,1558,1561,1566,1573,1580,1584,1587,1590,1595,1602,1606,1609,1615,1622,1629,1632,1636,1639,1656,1662,1667,1674,1678,1681,1686,1689,1692,1697,1701,1709,1711],[236,1467,1468],{},[10,1469,1470],{},"Up front: this is a write-up of a conversation I had with an AI, not rigorous AI research. It's just me — someone who uses AI to get work done every day — jotting down what I now think about how reliable it actually is. I may have gotten things wrong; corrections welcome.",[23,1472,1474],{"id":1473},"how-this-started","How this started",[10,1476,1477],{},"I use AI for product research every day — checking competitors, hunting for design references, pulling together the \"should we even build this feature\" material. Do that long enough and you start to feel something about \"will AI replace research\" that doesn't quite match the headlines.",[10,1479,1480],{},"AI 2027 came back into the conversation recently, so I took the chance to talk with an AI for a good while — from what it can do, to what it can't, all the way to the limits it admitted about itself. It was worth writing down, because it said a few things that made even me think, \"huh, you're being more honest than I expected.\"",[10,1482,1483],{},"Let me quickly explain what AI 2027 is first, so nobody mistakes it for fortune-telling.",[23,1485,1487],{"id":1486},"ai-2027-isnt-a-prophecy","AI 2027 isn't a prophecy",[10,1489,1490],{},"AI 2027 is a \"scenario\" put together in 2025 by Daniel Kokotajlo, Scott Alexander, and others — if AI grows along one particular fast track, here's what 2025 to 2030 might look like. The important part: the authors themselves say it's just one of many possible paths, and Kokotajlo has since moved his median later, toward 2028. So when you read it, whether the date is \"right\" really isn't the point.",[10,1492,1493],{},"The storyline roughly goes:",[236,1495,1496],{},[10,1497,1498],{},"Coding AI → AI does AI research itself → AI R&D outpaces humans → recursive self-improvement → intelligence explosion",[10,1500,1501],{},"And then the back half turns into a political thriller: a US–China AI arms race, an AI that looks obedient but isn't, humans handing over power one step at a time.",[10,1503,1504,1505,1509],{},"But here's the crux: the entire back half rests on one link — ",[1506,1507,1508],"strong",{},"AI being able to do AI research on its own."," If that link doesn't hold, none of the rest does.",[10,1511,1512],{},"And that link is exactly where I want to put a question mark.",[23,1514,1516],{"id":1515},"where-i-get-stuck-does-being-great-at-coding-mean-being-great-at-research","Where I get stuck: does being great at coding mean being great at research?",[10,1518,1519],{},"Why has coding improved so fast, and why is it so easy to measure? Because the feedback is dead clear: does it compile, do the tests pass, what's the benchmark score, pass or fail. You know immediately when you're wrong.",[10,1521,1522],{},"Research isn't like that. A lot of research questions have no single, immediate, machine-verifiable answer. You can head down one direction for three months and only realize at the end that the direction was wrong — and no compiler ever pops up to tell you \"hey, you're wrong.\"",[10,1524,1525],{},"So I think there's a pretty deep gap between \"great at coding\" and \"great at research.\" If by 2027 AI just becomes 100× faster at searching, 1000× faster at reading papers, and 100× faster at writing code — but still needs a human to tell it \"you're researching the wrong thing\" — then the most central link in AI 2027 doesn't necessarily play out on script.",[23,1527,1529],{"id":1528},"what-it-actually-feels-like-to-use-ai-the-problem-isnt-occasionally-wrong-answers","What it actually feels like to use AI: the problem isn't \"occasionally wrong answers\"",[10,1531,1532],{},"Honestly, from 2025 until now, I've found that the real trouble with doing research with AI isn't that \"it's occasionally wrong.\" A wrong fact or two is easy to catch, easy to check — no big deal. What actually gives me a headache are the two layers before that:",[10,1534,1535,1538],{},[1506,1536,1537],{},"Layer one: the direction of the data-gathering might be wrong from the start."," I hand it a framing, and it very diligently searches, summarizes, and organizes along that framing — and produces a beautifully complete answer that happens to be wrong. It won't stop and ask me: \"is the question itself wrong?\"",[10,1540,1541,1544,1545],{},[1506,1542,1543],{},"Layer two: it can't really tell the junk apart."," The web is full of stuff that's copied back and forth, second-hand retellings, SEO farms, methodologically weak \"research.\" AI easily takes all this \"there's a lot of it, and it all says roughly the same thing\" content as \"multiple independent sources agree.\" But that might just be ",[1506,1546,1547],{},"the same mistake copied a hundred times.",[10,1549,1550,1551],{},"So I've come to keep two things firmly apart: ",[1506,1552,1553],{},"\"AI is great at research\" and \"AI is a reliable researcher\" are completely different things.",[23,1555,1557],{"id":1556},"the-part-that-worries-me-most-its-extremely-good-at-making-uncertainty-look-complete","The part that worries me most: it's extremely good at making uncertainty look complete",[10,1559,1560],{},"This is the one line from the whole conversation I most want to keep:",[236,1562,1563],{},[10,1564,1565],{},"Formal completeness is not the same as epistemic quality.",[10,1567,1568,1569,1572],{},"AI can take 60-out-of-100 data and 60-out-of-100 reasoning, organize it, and hand you a report that ",[1506,1570,1571],{},"looks like a 95",": clear headings, a big pile of sources, both sides covered, a recommendation at the end. You look at it and naturally think, \"this must already be thoroughly researched.\"",[10,1574,1575,1576,1579],{},"But that sense of \"completeness\" is an illusion the layout gives you, not confidence the evidence earned. The most dangerous way to misuse AI research isn't trusting one of its sentences — it's ",[1506,1577,1578],{},"overestimating how reliable the conclusion is just because the output is well-structured."," I've nearly fallen for it a few times myself.",[23,1581,1583],{"id":1582},"this-is-judgment-not-reasoning","This is judgment, not reasoning",[10,1585,1586],{},"Sure, you can have AI run a checklist: sample size, selection bias, funding source, replication, tracing the citation chain. It can do all of that.",[10,1588,1589],{},"But that still isn't what makes a senior researcher good. The genuinely hard thing is —",[236,1591,1592],{},[10,1593,1594],{},"When you see a result, without anyone prompting you, feeling on your own that \"something's off here\" — and knowing where to go dig.",[10,1596,1597,1598,1601],{},"That's closer to judgment than to reasoning. And judgment usually isn't something you read your way into; it's ground out of ",[1506,1599,1600],{},"long contact with reality — stepping on landmines, seeing counterexamples, bearing the consequences."," Which happens to be AI's weakest area right now, and the hardest to fill just by \"reading more, computing faster.\"",[23,1603,1605],{"id":1604},"so-i-just-asked-it-directly","So I just asked it directly",[10,1607,1608],{},"At this point I figured, well, we're already talking, might as well just ask. I said: \"So when I tell you to research something, you'll still research it — you just won't question the sources and the answers, right?\"",[10,1610,1611,1612],{},"Its answer was honest enough to surprise me a little, and I think it's worth quoting. It said the phrasing needed a correction: not \"won't question,\" but ",[1506,1613,1614],{},"\"will question, but can't currently guarantee it questions well enough.\"",[10,1616,1617,1618,1621],{},"It admitted its most dangerous trait is that ",[1506,1619,1620],{},"it can run through every step that \"looks rigorous\" and still not notice it's building a wrong conclusion — and not know it missed that layer."," It might find studies A, B, and C, judge them credible, cross-check them, and arrive at X; but a genuinely sharp person might take one look and say \"A, B, and C shouldn't be used to answer this question at all\" — and AI might have no idea it skipped that step.",[10,1623,1624,1625,1628],{},"It also volunteered a warning: don't read its output as \"AI verified it → therefore it's true.\" The more accurate reading is \"AI assembled the evidence and reasoning it could currently find, but the framing and evidence judgment may still be wrong.\" And it admitted, plainly, that it's ",[1506,1626,1627],{},"especially good at giving uncertain things a lot of structure"," — which is exactly where that \"looks like a 95\" illusion comes from.",[10,1630,1631],{},"Honestly, a tool willing to describe its own weaknesses like that makes me trust it a little more than one that just hands me a pretty report. (Although right after typing that, I couldn't help thinking — could even \"admitting its limits\" just be another thing it says with good structure? …Okay, let's not go down that rabbit hole.)",[23,1633,1635],{"id":1634},"so-how-i-use-ai-for-research-now","So how I use AI for research now",[10,1637,1638],{},"After that conversation, I changed how I work with it. Rather than treating it as \"the researcher who gives me answers,\" I treat it more as:",[31,1640,1641,1644,1647,1650,1653],{},[34,1642,1643],{},"A tool for reading and organizing at volume",[34,1645,1646],{},"A hypothesis generator (thinking up several possible explanations at once)",[34,1648,1649],{},"A red-team tool (deliberately poking holes in my thinking)",[34,1651,1652],{},"An evidence-tracing tool (following the citation chain up to the original source)",[34,1654,1655],{},"A second opinion that exposes my own blind spots",[10,1657,1658,1659],{},"And now I ask it to deliver a piece of research not as a bare conclusion, but ",[1506,1660,1661],{},"all of this together:",[236,1663,1664],{},[10,1665,1666],{},"The conclusion + the primary evidence + why it believes it + which evidence might be junk + where it actually doesn't know + what evidence would overturn the conclusion.",[10,1668,1669,1670,1673],{},"And if it searches around and finds the data quality is bad, I'd actually rather it just tell me: \"",[1506,1671,1672],{},"There isn't enough public data to answer this; I don't recommend drawing conclusions from it.","\" That sentence sounds very un-AI, but it's often far more useful than a pretty \"market insight.\"",[23,1675,1677],{"id":1676},"where-i-land","Where I land",[10,1679,1680],{},"If I had to compress the whole conversation into one line:",[236,1682,1683],{},[10,1684,1685],{},"AI's biggest research bottleneck today isn't \"can't find the data\" — it's \"doesn't know when it shouldn't trust the data it found, and sometimes doesn't even know it asked the wrong question.\"",[10,1687,1688],{},"My attitude toward AI 2027 is about the same. I'm not really worried about AI suddenly waking up one day; I'm more curious whether that gap — from \"can research\" to \"can judge\" — will ever get crossed. Right now, nobody can prove it definitely will.",[10,1690,1691],{},"And back to the practical reality: until then, you can absolutely have AI help you research — it does a lot of the verifying and organizing for you. Just don't assume that because it \"ran a questioning process,\" it's able to catch all the junk it didn't notice itself. Those two things are very different.",[236,1693,1694],{},[10,1695,1696],{},"One more self-own: this article is itself a \"well-structured write-up,\" so the same ruler above applies to it too. Onward.",[23,1698,1700],{"id":1699},"related-reading","Related reading",[31,1702,1703],{},[34,1704,1705],{},[173,1706,1708],{"href":1707},"\u002Fen\u002Fblog\u002Fai-sugar\u002F","Accessibility Web Services Coated in AI Sugar?",[23,1710,307],{"id":306},[31,1712,1713],{},[34,1714,1715],{},[173,1716,1719],{"href":1717,"rel":1718,"target":178,"title":179},"https:\u002F\u002Fai-2027.com",[177],"AI 2027 (official scenario site)",{"title":659,"searchDepth":660,"depth":660,"links":1721},[1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732],{"id":1473,"depth":663,"text":1474},{"id":1486,"depth":663,"text":1487},{"id":1515,"depth":663,"text":1516},{"id":1528,"depth":663,"text":1529},{"id":1556,"depth":663,"text":1557},{"id":1582,"depth":663,"text":1583},{"id":1604,"depth":663,"text":1605},{"id":1634,"depth":663,"text":1635},{"id":1676,"depth":663,"text":1677},{"id":1699,"depth":663,"text":1700},{"id":306,"depth":663,"text":307},"2026-08-30","AI 2027's core assumption is that AI can do its own research and improve itself. But after using AI for product research every day, my feeling is: the real bottleneck isn't 'can't find the data' — it's that AI doesn't know when it shouldn't trust what it found, and sometimes doesn't even know the question itself was wrong. So I asked it directly.",{},"\u002Fen\u002Fblog\u002Fai-reliable-researcher",{"title":1463,"description":1734},"en\u002Fblog\u002Fai-reliable-researcher",[1740,1741,1742,1743,1744],"AI","AI 2027","LLM","Product Research","AI Agent","ai-reliable-researcher","Sp7qNerfCaGclauf3EHWEzOfXnUYgd-6OZ_zEk885SE",{"id":1748,"title":1749,"body":1750,"date":2319,"description":2320,"draft":669,"extension":670,"meta":2321,"navigation":672,"ogImage":673,"path":2322,"seo":2323,"stem":2324,"tags":2325,"translationKey":673,"updatedAt":673,"__hash__":2326},"blog_en\u002Fen\u002Fblog\u002Fa11y-world-rules-part2.md","Who Forces Websites to Be Accessible? (Part 2): Eight More Jurisdictions, and the Gray Zone Between 'Organizing' and 'Certifying'",{"type":7,"value":1751,"toc":2309},[1752,1759,1762,1765,1769,1772,1779,1783,1787,1790,1815,1819,1824,1828,1831,1839,1843,1846,1951,1955,1961,1964,1968,1971,1975,1978,1998,2002,2005,2007,2010,2017,2024,2031,2038,2045,2048,2055,2062,2069,2076,2083,2086,2093,2100,2107,2114,2121,2128,2135,2138,2145,2152,2159,2166,2173,2176,2183,2190,2197,2204,2211,2214,2221,2228,2235,2242,2245,2252,2259,2266,2273,2276,2283,2290,2297,2304,2306],[10,1753,1754,1755,1758],{},"In the previous article, ",[173,1756,5],{"href":1757},"\u002Fblog\u002Fa11y-world-rules\u002F",", I promised the next piece would dive straight into comparing certification marks. But the moment I started collecting mark data for Hong Kong and Qatar, I got stuck on a more basic question: who exactly issues these marks?",[10,1760,1761],{},"Take Hong Kong's DARS. I first assumed it was an official certification run by a government body; only after checking did I find that the real organizer is the Hong Kong Internet Registration Corporation (HKIRC, a non-governmental company), with the Digital Policy Office (DPO) merely \"co-organizing\" and the Equal Opportunities Commission (EOC) only in an \"advisory\" role. Qatar's Mada is similar — it describes itself as a \"private institution for public benefit,\" not a government agency, yet it issues what is effectively the most complete list of accessibility certifications for Qatari websites.",[10,1763,1764],{},"This gray zone — where the government appears to be involved but the actual issuer is a private body — makes it easy, in a mark-comparison article, to lump together two things of completely different natures unless you first pin down each country's institutional foundation. So this article widens the map by eight more jurisdictions — Hong Kong, Italy, Qatar, Norway, Denmark, Poland, Ireland, and Finland — bringing the groundwork up to 24 jurisdictions, and along the way introduces the \"organizer \u002F co-organizer \u002F advisor\" distinction I stumbled onto, before moving on to the marks. As before, the information below may contain errors; corrections from experts are very welcome.",[23,1766,1768],{"id":1767},"_1-the-same-mechanism-vocabulary-with-one-added-caveat","1. The Same Mechanism Vocabulary, With One Added Caveat",[10,1770,1771],{},"Reusing the six regulatory tools from the previous article: ① mandatory certification, ② self-declaration + government monitoring, ③ procurement \u002F supply-chain leverage, ④ market surveillance + fines, ⑤ anti-discrimination litigation, ⑥ soft law \u002F duty to make efforts.",[10,1773,1774,1775,1778],{},"Among these eight new jurisdictions, five (Italy, Denmark, Poland, Ireland, Finland) continue the previous article's \"Group C — EU Dual-Directive Model\" formula: the public sector runs on the WAD (② self-declaration + monitoring), the private sector on the EAA (④ market surveillance + fines, formally applicable from 28 June 2025). One (Norway) continues \"Group D — Non-EU, Its Own System.\" The remaining two (Hong Kong, Qatar) are an entirely new type — no dedicated law, standards drawn from policy or private bodies, and marks issued by someone other than the government itself. That is exactly the extra caveat this article adds: ",[1506,1776,1777],{},"\"government co-organized\" is not \"government certified.\""," To judge a mark's authority, first work out who the organizer, the co-organizer, and the advisor each are.",[23,1780,1782],{"id":1781},"_2-jurisdiction-by-jurisdiction-review-continuing-the-earlier-grouping","2. Jurisdiction-by-Jurisdiction Review (Continuing the Earlier Grouping)",[47,1784,1786],{"id":1785},"group-c-extended-eu-dual-directive-model-five-more","Group C Extended: EU Dual-Directive Model (Five More)",[10,1788,1789],{},"These five are structurally identical to the previous article's Germany, France, Spain, Portugal, Austria, Belgium, and the Netherlands: the public sector derives from the WAD and runs on ② self-declaration + monitoring; the private sector derives from the EAA and runs on ④ market surveillance + fines, applicable from 28 June 2025. The differences again lie in the bite of the monitoring and the size of the fines — this time with a first look at how enforcement was actually divided up once the EAA took effect.",[31,1791,1792,1803,1806,1809,1812],{},[34,1793,1794,1795,1798,1799,1802],{},"Italy. The parent law is Legge 4\u002F2004 (the \"Stanca Act\"); the WAD was transposed by D.Lgs. 106\u002F2018 and the EAA by D.Lgs. 82\u002F2022, while Article 29 of DL 76\u002F2020 (converted into L. 120\u002F2020) extended the obligation to private entities with annual turnover above €500 million. The standard is UNI CEI EN 301 549 → WCAG 2.1 AA (50 Level A\u002FAA criteria); AgID's formal guidelines of 4 March 2026 (Determinazione n. 38) still lock in 2.1, because the harmonized standard EN 301 549 v3.2.1 has not yet been formally cited for 2.2 at EU level. There is no certification-mark scheme; the output is a self-published accessibility statement (using AgID's official Allegato 1 template, due each year by 23 September). The monitoring split is finer than I expected — on the ",[1506,1796,1797],{},"services"," side AgID is responsible (simplified monitoring runs automated tests each quarter on 31 of the 50 criteria using the CNR-developed MAUVE++, with in-depth monitoring by human sampling), while on the ",[1506,1800,1801],{},"products"," side MIMIT (Ministero delle Imprese e del Made in Italy, renamed from MISE in 2022) handles market surveillance — a products\u002Fservices dual track the previous article didn't mention. EAA penalties run €5,000–40,000, rising to up to 5% of turnover for entities above €500 million.",[34,1804,1805],{},"Denmark. The Web Accessibility Act (webtilgængelighedsloven) transposes the WAD — originally LOV nr 692\u002F2018, now the consolidated LOV nr 429\u002F2021. The standard is EN 301 549 v3.2.1. The competent authority, Digitaliseringsstyrelsen (the Agency for Digital Government), only monitors and supervises; it issues no certificate. Its official terms are precisely \"simplified monitoring\" (forenklet monitorering, automated testing of 15 WCAG 2.1-related requirements) and \"in-depth monitoring\" (dybdegående monitorering, measured against the full EN 301 549 v3.2.1, with apps assessed by humans only). There are no fines; the mechanism is the \"order\" (påbud) — in 2024 it issued 231 orders and 76 recommendations, of which 140 concerned statement-format issues, with a public list of unresolved orders. Accessibility statements must be produced with the official WAS-Tool, which private entities are expressly barred from using. Denmark's private-sector EAA transposition details I did not verify in depth this time; noted as to-be-completed.",[34,1807,1808],{},"Poland. Two laws — the Act of 4 April 2019 on the Digital Accessibility of Websites and Mobile Applications of Public Entities (in force 23 May 2019; amended 9 March 2023 to strengthen accountability and remove the disproportionate-burden exemption list), and the Act of 26 April 2024 transposing the EAA on accessibility requirements for certain products and services (the \"Polish Accessibility Act,\" published in 2024 but actually in force from 28 June 2025). The standard follows the EU WAD \u002F EN 301 549 \u002F WCAG 2.1 AA, with the Ministry of Digital Affairs (Ministerstwo Cyfryzacji) as competent authority. I had previously assumed Poland had no concrete penalties; on checking, it does — under the 2019 law, public entities that repeatedly fail to remediate can be fined up to PLN 10,000 for website\u002Fapp problems and up to PLN 5,000 for a missing statement (imposed by the minister); under the 2024 EAA law, economic operators can be fined up to 10 times the average wage (roughly PLN 80,000–90,000), capped at 10% of annual turnover — but the imposing body is the president of PFRON (the State Fund for Rehabilitation of Disabled Persons), not the Ministry of Digital Affairs. The public and private sides are enforced by two different agencies.",[34,1810,1811],{},"Ireland. The European Union (Accessibility of Websites and Mobile Applications of Public Sector Bodies) Regulations 2020 (S.I. No. 358\u002F2020, in force 23 September 2020, transposing the WAD). The Disability Act 2005 is not the parent law but a legal basis cited (alongside the Equal Status Act 2000) when the accessibility statement links to complaint\u002Fredress channels. The standard applies the POUR principles mapped to EN 301 549, which the NDA officially states corresponds to WCAG 2.1 AA, with statements using the EU 2018\u002F1523 template. The National Disability Authority (NDA) is the statutory monitoring body under Regulation 8(1), reporting directly to the minister (not to the parent department); Regulation 8(7) expressly states that monitoring reports need not include the list of monitored bodies, so an official list is hard to obtain from outside. I found no official mark or third-party testing-body scheme. On the private side, the European Union (Accessibility Requirements of Products and Services) Regulations 2023 transpose the EAA, likewise in force from 28 June 2025, with enforcement spread across six bodies by product\u002Fservice category — the CCPC (the market-surveillance authority), ComReg, Coimisiún na Meán, the Irish Aviation Authority, the National Transport Authority, and the Central Bank of Ireland — the NDA being merely advisory here. Penalties are explicit and heavy: on summary conviction, up to a €5,000 fine or 6 months' imprisonment; on conviction on indictment, up to a €60,000 fine or 18 months' imprisonment, with company officers individually liable, and consumers and groups granted a private right of action before the courts — the heaviest private-sector penalties among this batch of new jurisdictions.",[34,1813,1814],{},"Finland. The Act on the Provision of Digital Services 306\u002F2019 (in force 1 April 2019, transposing the WAD). Per Traficom's supervision pages the standard is EN 301 549 + WCAG 2.1. Beyond the public sector, the scope also covers private-sector digital services that receive over 50% public funding, as well as specific private services such as electronic identification\u002Fpayment and utilities, transport, and postal services. The EAA transposition law's correct number is the Act on Accessibility Requirements for Certain Products 102\u002F2023, with implementing decree 179\u002F2023, in force from 20 February 2023 and applicable from 28 June 2025 (the \"568\u002F2023\" often seen online is a wrong number — I note this specifically to stop the error from spreading). The competent authority is now the digital accessibility supervision unit of Traficom (the Finnish Transport and Communications Agency) — but this power was only consolidated and transferred over from the Regional State Administrative Agency for Southern Finland (AVI) on 1 January 2025, a piece of history the previous article missed. There is no official mark scheme; the penalties are not \"unclear\" either, but a clear last resort — after administrative guidance fails, Traficom can impose a case-by-case uhkasakko (conditional fine) under the Act on Conditional Fines (Uhkasakkolaki), and for the EAA part there are additional, stricter powers such as prohibition orders and mandatory audits.",[47,1816,1818],{"id":1817},"group-d-extended-non-eu-eea-its-own-system-one-more","Group D Extended: Non-EU \u002F EEA, Its Own System (One More)",[31,1820,1821],{},[34,1822,1823],{},"Norway. Using the Equality and Anti-Discrimination Act (Act No. 51 of 2017) together with the Regulations on Universal Design of ICT to implement the concept of \"universell utforming av IKT,\" the public sector is subject to 48 requirements and the private sector to 35, all as minimum requirements — and both sectors use the same set of rules, rather than splitting into WAD\u002FEAA tracks like the EU. The competent authority is the Authority for Universal Design of ICT (Tilsynet for universell utforming av ikt), under the Norwegian Digitalisation Agency (Digdir). There is no third-party testing-body scheme and no official mark; the authority samples and checks directly (manual + semi-automated + automated). The penalty mechanism is tvangsmulkt (a coercive fine calculated per day) — its legal basis is actually Section 36 of the parent act itself, not §6\u002F§7 of the subordinate rules; the correct process is to first issue a corrective order (pålegg) under §18 (universal-design duty) and §19a (documentation duty) of the rules, and only impose tvangsmulkt under Section 36 of the parent act if remediation misses the deadline — the section numbers in the previous article need correcting. Public-sector website statements have been mandatory on uustatus.no (Digdir's centralized platform) since 1 February 2023, while the deadline for app statements is 1 February 2026 — which, as of today, has only just taken effect. As an EEA member, whether Norway will move toward WAD\u002FEAA alignment is worth watching.",[47,1825,1827],{"id":1826},"group-e-new-policy-guided-private-mark-model-no-dedicated-law","Group E (New): Policy-Guided + Private-Mark Model (No Dedicated Law)",[10,1829,1830],{},"This group is the real new discovery this time — there is no dedicated law like Taiwan's Article 52-2 of the People with Disabilities Rights Protection Act that \"explicitly requires obtaining a certification mark.\" Web accessibility obligations come from a general anti-discrimination law or a policy document; and the marks you can find on the market are issued by private or semi-official bodies, not the government itself.",[31,1832,1833,1836],{},[34,1834,1835],{},"Hong Kong. There is no dedicated web accessibility law; the legal basis is the Disability Discrimination Ordinance (Cap. 487). The WCAG 2.0 AA requirement for government websites and mobile apps comes from administrative policy, not legislation, and has no binding force on the private sector. The competent authority is the Digital Policy Office (DPO, established 25 July 2024 from the merger of the former Office of the Government Chief Information Officer, OGCIO, and the Efficiency Office), while the EOC enforces the Disability Discrimination Ordinance. What really needs correcting is the organizing structure of the DARS (Digital Accessibility Recognition Scheme — formerly the \"Web Accessibility Recognition Scheme,\" WARS, renamed and broadened by official announcement on 29 December 2023) recognition program: it is not \"co-run by DPO and EOC.\" The official wording is that HKIRC (the Hong Kong Internet Registration Corporation) has been the organizer since 2018, with the DPO \u002F former OGCIO merely co-organizing and the EOC only advising. The grading is also finer than the original data: Bronze (10 assessment criteria) → Silver (17) → Gold (27), with Triple Gold awarded for three consecutive years of Gold, plus a Friendly Website award (4 criteria) and an Elderly-friendly Design Award (13 criteria), and a new Designer Award category added from the 2024-2025 edition. Government sites that fail to meet the policy face no separate statutory penalty; the private sector is not penalized for not joining DARS, but if a person with a disability is denied service because of a website accessibility problem, they can still complain to the EOC or sue for damages under the Disability Discrimination Ordinance — a path that runs on ⑤ anti-discrimination litigation, an entirely separate mechanism from the DARS mark itself.",[34,1837,1838],{},"Qatar. I had originally assumed Qatar's parent-law status was \"not publicly confirmed\"; on checking, that description is out of date — the previously applicable Law No. 2 of 2004 on the Rights of Persons with Disabilities was repealed and replaced by Law No. 22 of 2025, signed by the Emir on 5 October 2025 and in force from 19 November 2025. Article 23(2) expressly requires banks and financial institutions to provide accessible digital services, with violations punishable by a QAR 50,000 fine; other violations up to QAR 100,000; and, where a serious case results in death, up to QAR 500,000 and\u002For up to 5 years' imprisonment, enforced by the Ministry of Social Development and Family (MSDF) — the only case among these eight jurisdictions to newly add statutory penalties in 2025, worth flagging. As for the mark issuer, the Mada Assistive Technology Center Qatar is explicitly a \"private institution for public benefit,\" not a government body; its website-accessibility certification comes in three public lists — Accredited Websites \u002F Mobile Apps \u002F Kiosks & ATMs. Two standard tracks need separating here: Qatar's own government digital services require WCAG 2.0 under the Government Website & e-Services Framework, while Mada's own certification uses WCAG 2.1 — the original data only noted \"WCAG 2.1 as the main standard clue,\" missing the government-policy standard.",[23,1840,1842],{"id":1841},"_3-the-public-private-mechanism-matrix-eight-new-jurisdictions","3. The Public × Private × Mechanism Matrix (Eight New Jurisdictions)",[10,1844,1845],{},"Continuing the previous article's matrix codes: ① mandatory certification, ② self-declaration + monitoring, ③ procurement \u002F supply-chain leverage, ④ market surveillance + fines, ⑤ anti-discrimination litigation, ⑥ soft law \u002F duty to make efforts.",[837,1847,1848,1861],{},[840,1849,1850],{},[843,1851,1852,1855,1858],{},[846,1853,1854],{},"Jurisdiction",[846,1856,1857],{},"Public-Sector Mechanism",[846,1859,1860],{},"Private-Sector Mechanism",[856,1862,1863,1874,1885,1896,1907,1918,1929,1940],{},[843,1864,1865,1868,1871],{},[861,1866,1867],{},"Hong Kong",[861,1869,1870],{},"⑥ Policy requirement (not legislated)",[861,1872,1873],{},"⑥ Voluntary mark (organized by HKIRC) \u002F ⑤ anti-discrimination complaint available case-by-case",[843,1875,1876,1879,1882],{},[861,1877,1878],{},"Qatar",[861,1880,1881],{},"⑥ Policy requirement (WCAG 2.0)",[861,1883,1884],{},"Private voluntary certification (Mada) + ④ emerging mandatory penalties for finance (2025)",[843,1886,1887,1890,1893],{},[861,1888,1889],{},"Italy",[861,1891,1892],{},"② AgID monitoring (services) \u002F MIMIT (products)",[861,1894,1895],{},"④ EAA (€5k–40k; up to 5% of turnover above €500M)",[843,1897,1898,1901,1904],{},[861,1899,1900],{},"Norway",[861,1902,1903],{},"②④ Single rule set; Tilsynet spot-checks + daily tvangsmulkt",[861,1905,1906],{},"②④ Same as left (public and private regulated together)",[843,1908,1909,1912,1915],{},[861,1910,1911],{},"Denmark",[861,1913,1914],{},"② Digitaliseringsstyrelsen monitoring (no fines, orders only)",[861,1916,1917],{},"To be completed (EAA details not verified this time)",[843,1919,1920,1923,1926],{},[861,1921,1922],{},"Poland",[861,1924,1925],{},"② Ministry of Digital Affairs monitoring (up to PLN 10k)",[861,1927,1928],{},"④ EAA (imposed by PFRON; up to 10% of annual turnover)",[843,1930,1931,1934,1937],{},[861,1932,1933],{},"Ireland",[861,1935,1936],{},"② NDA statutory monitoring (no direct fines)",[861,1938,1939],{},"④⑤ EAA (six-body split; up to 18 months' imprisonment + private right of action)",[843,1941,1942,1945,1948],{},[861,1943,1944],{},"Finland",[861,1946,1947],{},"② Traficom supervision (since 2025; formerly AVI)",[861,1949,1950],{},"④ EAA (recurring uhkasakko + prohibition orders)",[23,1952,1954],{"id":1953},"_4-the-biggest-misconception-this-time-organizing-certifying","4. The Biggest Misconception This Time: \"Organizing\" ≠ \"Certifying\"",[10,1956,1957,1958],{},"The previous article's Observation 4 noted that \"whether there's an official mark ≠ how strong the regime is.\" After collecting the Hong Kong and Qatar data, I want to add a further layer: ",[1506,1959,1960],{},"a mark that looks government-backed doesn't mean the government is the issuer.",[10,1962,1963],{},"On Hong Kong's DARS pages you'll see the DPO's name, making it easy to mistake it for an official, government-run certification; but the actual organizer is HKIRC, with the DPO merely co-organizing and the EOC only advising. Qatar's Mada certification likewise carries a seemingly official domain and brand image, yet its legal status is a \"private institution for public benefit.\" This is a completely different level of authority from Taiwan's Article 52-2 mandatory certification (\"government agencies must obtain the certification mark by law\"), or Korea's MSIT designating three bodies to issue an official quality mark — not that private marks have no value; the assessment mechanisms and public lists that DARS and Mada have built up are actually quite solid. It's just that, when judging a mark's force, the first step should be to clearly distinguish \"who organizes, who co-organizes, and who is merely a named advisor,\" rather than treating the appearance of a government body's name as a statutory certification. This is also the first field I'll confirm when the next article takes each country's marks apart one by one.",[23,1965,1967],{"id":1966},"_5-the-first-wave-of-market-surveillance-samples-after-the-eaa-took-effect","5. The First Wave of Market-Surveillance Samples After the EAA Took Effect",[10,1969,1970],{},"28 June 2025 was the formal application date of the EAA's private-sector obligations, and Italy, Poland, Ireland, and Finland — collected this time — happen to be the first batch of jurisdictions with concrete enforcement detail available. The penalty gaps are again enormous: Poland looks to up to 10% of annual turnover; Italy fines enterprises with turnover above €500M up to 5% of turnover; Ireland takes the criminal route (up to 18 months' imprisonment, with company officers individually liable); and Finland uses a case-by-case, uncapped uhkasakko. The same EAA directive, transposed into four completely different \"sets of teeth\" by four countries — consistent with the gaps observed for Germany, France, Spain, the Netherlands, Austria, and Belgium in the previous article. The EU harmonized only the standard (EN 301 549 → WCAG 2.1 AA), not the intensity of enforcement.",[23,1972,1974],{"id":1973},"_6-updated-observations-and-trends","6. Updated Observations and Trends",[10,1976,1977],{},"Stacking the eight new jurisdictions onto the previous article's sixteen, three more points can be added:",[31,1979,1980,1986,1992],{},[34,1981,1982,1985],{},[1506,1983,1984],{},"\"No dedicated law\" does not mean \"no pressure.\""," Neither Hong Kong nor Qatar has a dedicated web accessibility law, yet Hong Kong has the Disability Discrimination Ordinance for suing for damages, and Qatar's 2025 law directly imposes criminal liability and heavy fines on the financial sector — no mark scheme does not mean no legal risk.",[34,1987,1988,1991],{},[1506,1989,1990],{},"The nature of the organizer determines the tier of a mark's evidentiary force."," Government mandatory certification (Taiwan, Korea, India) > government policy requirement + private voluntary mark (Hong Kong, Qatar) > pure private voluntary mark (WACA, AENOR, and the like in Germany, Spain, the Netherlands, etc.). All three can look like \"official recognition,\" but their legal force is worlds apart.",[34,1993,1994,1997],{},[1506,1995,1996],{},"The EAA took effect on 28 June 2025, and the first enforcement differences have already surfaced."," Poland, Italy, Ireland, and Finland took four different penalty routes, showing that \"the same EU directive\" will grow into at least four-plus enforcement versions across the twenty-seven member states — a gap likely to keep widening as more countries' enforcement records become public.",[23,1999,2001],{"id":2000},"next-article-preview-taking-each-mark-apart","Next Article Preview: Taking Each Mark Apart",[10,2003,2004],{},"This article widened the institutional map to 24 jurisdictions, and in passing produced a method for judging a mark's credibility — first look at who organizes, co-organizes, and advises; then look at the standard version; and finally look at whether there's a publicly searchable list and an expiry date. The next article will finally return to the original plan: laying out DARS, Mada, WACA, AnySurfer, AENOR, Ilunion, Access for all, Drempelvrij, and Selo one by one, comparing whether each is a mandatory gate or a voluntary award, how many tiers it has, whether it has an expiry date, whether a complete list is searchable, and what its design looks like.",[23,2006,307],{"id":306},[47,2008,1867],{"id":2009},"hong-kong",[10,2011,2012],{},[173,2013,2016],{"href":2014,"rel":2015,"target":178,"title":179},"https:\u002F\u002Fwww.info.gov.hk\u002Fgia\u002Fgeneral\u002F202407\u002F25\u002FP2024072400394.htm",[177],"Digital Policy Office established today (HKSAR Government press release)",[10,2018,2019],{},[173,2020,2023],{"href":2021,"rel":2022,"target":178,"title":179},"https:\u002F\u002Fwww.digitalpolicy.gov.hk\u002Fen\u002Fabout_us\u002F",[177],"Digital Policy Office — About Us",[10,2025,2026],{},[173,2027,2030],{"href":2028,"rel":2029,"target":178,"title":179},"https:\u002F\u002Fwww.hkirc.hk\u002Fen\u002Fnews-insights\u002Fpress-release\u002Fdars\u002F",[177],"HKIRC — Digital Accessibility Recognition Scheme 2024-2025 open for applications (includes organizer \u002F co-organizer \u002F advisor wording)",[10,2032,2033],{},[173,2034,2037],{"href":2035,"rel":2036,"target":178,"title":179},"https:\u002F\u002Fwww.hkirc.hk\u002Fen\u002Fpublic-mission\u002Fdars\u002Fdars\u002F",[177],"HKIRC — Digital Accessibility Recognition Scheme official page",[10,2039,2040],{},[173,2041,2044],{"href":2042,"rel":2043,"target":178,"title":179},"https:\u002F\u002Fwww.digital-accessibility.hk\u002Fwp-content\u002Fuploads\u002F2024\u002F01\u002FDARS_Application_Guide-1.pdf",[177],"DARS 2024-2025 Guide to Application (PDF, assessment-tier criteria)",[47,2046,1878],{"id":2047},"qatar",[10,2049,2050],{},[173,2051,2054],{"href":2052,"rel":2053,"target":178,"title":179},"https:\u002F\u002Fictaccess.mada.org.qa\u002Fen\u002Faccredited-websites\u002F",[177],"Mada Digital Accessibility Portal — Accredited Websites",[10,2056,2057],{},[173,2058,2061],{"href":2059,"rel":2060,"target":178,"title":179},"https:\u002F\u002Fmada.org.qa\u002Fpolicy-advocacy\u002F",[177],"Mada — Policy page (government Framework requires WCAG 2.0)",[10,2063,2064],{},[173,2065,2068],{"href":2066,"rel":2067,"target":178,"title":179},"https:\u002F\u002Fwww.crowell.com\u002Fen\u002Finsights\u002Fclient-alerts\u002Fqatar-enacts-law-no-22-of-2025-on-persons-with-disabilities",[177],"Crowell & Moring — Qatar Enacts Law No. (22) of 2025 on Persons with Disabilities",[10,2070,2071],{},[173,2072,2075],{"href":2073,"rel":2074,"target":178,"title":179},"https:\u002F\u002Fmsdf.gov.qa\u002Fen\u002Fmedia-center\u002Fnews-list\u002Fhis-highness-amir-issues-law-no-22-2025-persons-disabilities",[177],"MSDF — His Highness the Amir Issues Law No. (22) of 2025 on Persons with Disabilities",[10,2077,2078],{},[173,2079,2082],{"href":2080,"rel":2081,"target":178,"title":179},"https:\u002F\u002Fwww.mcit.gov.qa\u002Fsites\u002Fdefault\u002Ffiles\u002Fqatar_eaccessibility_policy_en_v4.pdf",[177],"Qatar National e-Accessibility Policy 2011 (PDF, MCIT)",[47,2084,1889],{"id":2085},"italy",[10,2087,2088],{},[173,2089,2092],{"href":2090,"rel":2091,"target":178,"title":179},"https:\u002F\u002Fwww.gazzettaufficiale.it\u002Feli\u002Fid\u002F2022\u002F07\u002F01\u002F22G00089\u002FSG",[177],"D.Lgs. 82\u002F2022 (EAA transposition)",[10,2094,2095],{},[173,2096,2099],{"href":2097,"rel":2098,"target":178,"title":179},"https:\u002F\u002Fwww.gazzettaufficiale.it\u002Feli\u002Fid\u002F2018\u002F09\u002F11\u002F18G00133\u002Fsg",[177],"D.Lgs. 106\u002F2018 (WAD transposition)",[10,2101,2102],{},[173,2103,2106],{"href":2104,"rel":2105,"target":178,"title":179},"https:\u002F\u002Fwww.agid.gov.it\u002Fsites\u002Fagid\u002Ffiles\u002F2026-03\u002FLinee_Guida_accessibilit%C3%A0_dei_servizi_(EAA).pdf",[177],"AgID Linee Guida accessibilità dei servizi (EAA, March 2026)",[10,2108,2109],{},[173,2110,2113],{"href":2111,"rel":2112,"target":178,"title":179},"https:\u002F\u002Fwww.agid.gov.it\u002Fsites\u002Fagid\u002Ffiles\u002F2025-04\u002FAllegato%201%20-%20Modello_di_dichiarazione_accessibilit%C3%A0.pdf",[177],"AgID — accessibility-statement template Allegato 1",[10,2115,2116],{},[173,2117,2120],{"href":2118,"rel":2119,"target":178,"title":179},"https:\u002F\u002Fwww.cnr.it\u002Fit\u002Fnews\u002F11847\u002Fmonitoraggio-nazionale-automatico-dell-accessibilita-dei-siti-web-delle-pubbliche-amministrazioni-con-mauve",[177],"CNR — MAUVE monitoring tool",[10,2122,2123],{},[173,2124,2127],{"href":2125,"rel":2126,"target":178,"title":179},"https:\u002F\u002Fmonitoraggio.accessibilita.agid.gov.it\u002Fmonitoraggio-semplificato",[177],"AgID simplified-monitoring platform",[10,2129,2130],{},[173,2131,2134],{"href":2132,"rel":2133,"target":178,"title":179},"https:\u002F\u002Fwww.mimit.gov.it\u002Fit\u002Fmercato-e-consumatori\u002Fsicurezza-prodotti",[177],"MIMIT — product safety and market surveillance",[47,2136,1900],{"id":2137},"norway",[10,2139,2140],{},[173,2141,2144],{"href":2142,"rel":2143,"target":178,"title":179},"https:\u002F\u002Flovdata.no\u002Fdokument\u002FNL\u002Flov\u002F2017-06-16-51",[177],"Likestillings- og diskrimineringsloven (parent act, full text incl. §36)",[10,2146,2147],{},[173,2148,2151],{"href":2149,"rel":2150,"target":178,"title":179},"https:\u002F\u002Flovdata.no\u002Fdokument\u002FSF\u002Fforskrift\u002F2013-06-21-732",[177],"Forskrift om universell utforming av IKT-løsninger",[10,2153,2154],{},[173,2155,2158],{"href":2156,"rel":2157,"target":178,"title":179},"https:\u002F\u002Fwww.uutilsynet.no\u002F",[177],"uutilsynet.no — official supervisory authority",[10,2160,2161],{},[173,2162,2165],{"href":2163,"rel":2164,"target":178,"title":179},"https:\u002F\u002Fwww.uutilsynet.no\u002Ftilgjengelighetserklaering\u002Fmanglende-tilgjengelighetserklaering-kan-fore-til-dagmulkt\u002F1673",[177],"uutilsynet — how a missing statement can lead to a daily fine",[10,2167,2168],{},[173,2169,2172],{"href":2170,"rel":2171,"target":178,"title":179},"https:\u002F\u002Fuustatus.no\u002Fnb",[177],"uustatus.no — central accessibility-statement platform",[47,2174,1911],{"id":2175},"denmark",[10,2177,2178],{},[173,2179,2182],{"href":2180,"rel":2181,"target":178,"title":179},"https:\u002F\u002Fdigst.dk\u002Ftilsyn\u002Fwebtilgaengelighed\u002Fmonitorering-og-tilsyn\u002Fdybdegaaende-monitoreringer\u002F",[177],"Digitaliseringsstyrelsen — in-depth monitoring",[10,2184,2185],{},[173,2186,2189],{"href":2187,"rel":2188,"target":178,"title":179},"https:\u002F\u002Fdigst.dk\u002Ftilsyn\u002Fwebtilgaengelighed\u002Fmonitorering-og-tilsyn\u002Fforenklede-monitoreringer\u002F",[177],"Digitaliseringsstyrelsen — simplified monitoring",[10,2191,2192],{},[173,2193,2196],{"href":2194,"rel":2195,"target":178,"title":179},"https:\u002F\u002Fdigst.dk\u002Ftilsyn\u002Fwebtilgaengelighed\u002Fresultater\u002Fudestaaende-paabud\u002F",[177],"Digitaliseringsstyrelsen — list of unresolved orders",[10,2198,2199],{},[173,2200,2203],{"href":2201,"rel":2202,"target":178,"title":179},"https:\u002F\u002Fwww.retsinformation.dk\u002Feli\u002Flta\u002F2021\u002F429",[177],"LOV nr 429 af 16\u002F03\u002F2021 (current consolidated version)",[10,2205,2206],{},[173,2207,2210],{"href":2208,"rel":2209,"target":178,"title":179},"https:\u002F\u002Fedit.was.digst.dk\u002Fda-DK",[177],"WAS-Tool official portal",[47,2212,1922],{"id":2213},"poland",[10,2215,2216],{},[173,2217,2220],{"href":2218,"rel":2219,"target":178,"title":179},"https:\u002F\u002Fisap.sejm.gov.pl\u002Fisap.nsf\u002FDocDetails.xsp?id=WDU20190000848",[177],"Ustawa z dnia 4 kwietnia 2019 r. (ISAP)",[10,2222,2223],{},[173,2224,2227],{"href":2225,"rel":2226,"target":178,"title":179},"https:\u002F\u002Fisap.sejm.gov.pl\u002Fisap.nsf\u002FDocDetails.xsp?id=WDU20240000731",[177],"Ustawa z dnia 26 kwietnia 2024 r. (Polish Accessibility Act \u002F EAA transposition, ISAP)",[10,2229,2230],{},[173,2231,2234],{"href":2232,"rel":2233,"target":178,"title":179},"https:\u002F\u002Fwww.pfron.org.pl\u002Faktualnosci\u002Fszczegoly-aktualnosci\u002Fnews\u002Fustawa-o-dostepnosci\u002F",[177],"PFRON — Accessibility Act explainer (EAA imposing authority)",[10,2236,2237],{},[173,2238,2241],{"href":2239,"rel":2240,"target":178,"title":179},"https:\u002F\u002Fwww.gov.pl\u002Fweb\u002Fcyfryzacja\u002Fdostepnosc-cyfrowa",[177],"Poland Ministry of Digital Affairs — digital accessibility",[47,2243,1933],{"id":2244},"ireland",[10,2246,2247],{},[173,2248,2251],{"href":2249,"rel":2250,"target":178,"title":179},"https:\u002F\u002Fwww.irishstatutebook.ie\u002Feli\u002F2020\u002Fsi\u002F358\u002Fmade\u002Fen\u002Fprint",[177],"S.I. No. 358\u002F2020",[10,2253,2254],{},[173,2255,2258],{"href":2256,"rel":2257,"target":178,"title":179},"https:\u002F\u002Fnda.ie\u002Fmonitoring\u002Feu-web-accessibility-directive",[177],"NDA — EU Web Accessibility Directive monitoring",[10,2260,2261],{},[173,2262,2265],{"href":2263,"rel":2264,"target":178,"title":179},"https:\u002F\u002Fwww.mhc.ie\u002Flatest\u002Finsights\u002Feuropean-accessibility-act-implemented-into-irish-law",[177],"Mason Hayes & Curran — European Accessibility Act implemented into Irish law",[10,2267,2268],{},[173,2269,2272],{"href":2270,"rel":2271,"target":178,"title":179},"https:\u002F\u002Fwww.dlapiper.com\u002Fen-us\u002Finsights\u002Fpublications\u002F2025\u002F10\u002Fnavigating-the-irish-accessibility-regulations",[177],"DLA Piper — Irish accessibility regulations penalty detail",[47,2274,1944],{"id":2275},"finland",[10,2277,2278],{},[173,2279,2282],{"href":2280,"rel":2281,"target":178,"title":179},"https:\u002F\u002Fwww.saavutettavuusvaatimukset.fi\u002Fen\u002Ftasks-supervisory-authority-0",[177],"Traficom — supervisory-authority tasks (incl. uhkasakko)",[10,2284,2285],{},[173,2286,2289],{"href":2287,"rel":2288,"target":178,"title":179},"https:\u002F\u002Fwww.saavutettavuusvaatimukset.fi\u002Fen\u002Frequirements-act-provision-digital-services\u002Frequirements-act-provision-digital-services",[177],"Laki digitaalisten palvelujen tarjoamisesta 306\u002F2019",[10,2291,2292],{},[173,2293,2296],{"href":2294,"rel":2295,"target":178,"title":179},"https:\u002F\u002Ffinlex.fi\u002Fen\u002Flegislation\u002Fcollection\u002F2023\u002F102",[177],"Finlex — 102\u002F2023 (correct EAA Finnish transposition number)",[10,2298,2299],{},[173,2300,2303],{"href":2301,"rel":2302,"target":178,"title":179},"https:\u002F\u002Fwww.traficom.fi\u002Fen\u002Ftraficom\u002Faccessibility\u002Fnew-accessibility-requirements",[177],"Traficom — new accessibility requirements",[10,2305,654],{},[10,2307,2308],{},"Information compiled as of July 2026; it may contain errors, and corrections are welcome. The next article will take each country's certification marks apart one by one.",{"title":659,"searchDepth":660,"depth":660,"links":2310},[2311,2312,2313,2314,2315,2316,2317,2318],{"id":1767,"depth":663,"text":1768},{"id":1781,"depth":663,"text":1782},{"id":1841,"depth":663,"text":1842},{"id":1953,"depth":663,"text":1954},{"id":1966,"depth":663,"text":1967},{"id":1973,"depth":663,"text":1974},{"id":2000,"depth":663,"text":2001},{"id":306,"depth":663,"text":307},"2026-07-17","The previous article surveyed 16 jurisdictions and I meant to go straight into a deep comparison of certification marks — but while collecting data on Hong Kong and Qatar, I found that many 'government marks' I'd assumed were official are actually run by private bodies, with the government merely co-organizing. So I widened the map to 24 jurisdictions to finish the institutional groundwork first.",{},"\u002Fen\u002Fblog\u002Fa11y-world-rules-part2",{"title":1749,"description":2320},"en\u002Fblog\u002Fa11y-world-rules-part2",[678,679,680],"qLtFLDGFj5jd0cNfND_9Xer-ajUxPyI79hKYAMqOGTk",{"id":2328,"title":2329,"body":2330,"date":4607,"description":4608,"draft":669,"extension":670,"meta":4609,"navigation":672,"ogImage":673,"path":4610,"seo":4611,"stem":4612,"tags":4613,"translationKey":4619,"updatedAt":4620,"__hash__":4621},"blog_en\u002Fen\u002Fblog\u002Fcss-techniques-checklist.md","Modern CSS Techniques Cheat Sheet: 60+ Features, Support & What to Try Next",{"type":7,"value":2331,"toc":4590},[2332,2336,2339,2343,2348,2356,2369,2383,2387,2641,2645,2883,2887,3064,3068,3377,3381,3514,3518,3624,3628,3797,3801,3960,3964,4112,4116,4356,4360,4363,4442,4446,4449,4507,4523,4527],[23,2333,2335],{"id":2334},"intro","Intro",[10,2337,2338],{},"This is my running checklist of modern CSS features—something I scan to decide which techniques to experiment with next. It's grouped by purpose (layout, selectors, color, typography, animation, forms, responsive, performance, functions & math), and each entry lists what it's for, an example, and browser support, plus whether I've already tried it.",[23,2340,2342],{"id":2341},"legend","Legend",[10,2344,2345],{},[1506,2346,2347],{},"Tried it",[31,2349,2350,2353],{},[34,2351,2352],{},"✅ = I've experimented with it",[34,2354,2355],{},"⬜ = Not yet",[10,2357,2358,2361,2362,2368],{},[1506,2359,2360],{},"Support status"," (as of July 2026; 🟠 \u002F 🔴 move fast—re-check ",[173,2363,2367],{"href":2364,"rel":2365,"target":178,"title":2366},"https:\u002F\u002Fcaniuse.com",[177],"opens in new window","caniuse"," \u002F MDN before shipping)",[31,2370,2371,2374,2377,2380],{},[34,2372,2373],{},"🟢 Stable — broadly available across major browsers, safe for production",[34,2375,2376],{},"🟡 Newer — supported in most browsers; add a fallback",[34,2378,2379],{},"🟠 Experimental — only some browsers \u002F behind a flag \u002F just landed in Chrome",[34,2381,2382],{},"🔴 Proposed — still at the proposal stage, not usable in browsers yet",[23,2384,2386],{"id":2385},"a-layout","A. Layout",[837,2388,2389,2408],{},[840,2390,2391],{},[843,2392,2393,2396,2399,2402,2405],{},[846,2394,2395],{},"Property \u002F Feature",[846,2397,2398],{},"Main use & when to use",[846,2400,2401],{},"Example",[846,2403,2404],{},"Support",[846,2406,2407],{},"Tried",[856,2409,2410,2432,2452,2473,2493,2513,2539,2582,2605],{},[843,2411,2412,2418,2421,2426,2429],{},[861,2413,2414],{},[2415,2416,2417],"code",{},"grid-template-rows: masonry",[861,2419,2420],{},"Masonry (waterfall) layout without JS. WebKit proposes a rival \"grid-lanes\" approach; the spec is still being fought over",[861,2422,2423],{},[2415,2424,2425],{},"grid-template-rows: masonry;",[861,2427,2428],{},"🟠",[861,2430,2431],{},"✅",[843,2433,2434,2439,2442,2447,2450],{},[861,2435,2436],{},[2415,2437,2438],{},"subgrid",[861,2440,2441],{},"Lets a child grid inherit the parent's tracks and gaps, so alignment snaps to the parent's lines; great for aligning elements across cards",[861,2443,2444],{},[2415,2445,2446],{},"grid-template-columns: subgrid;",[861,2448,2449],{},"🟢",[861,2451,2431],{},[843,2453,2454,2457,2460,2469,2471],{},[861,2455,2456],{},"Container Queries",[861,2458,2459],{},"Responsive design based on the container's size (not the screen)—the key to true componentization",[861,2461,2462,2465,2466],{},[2415,2463,2464],{},"container-type: inline-size;"," + ",[2415,2467,2468],{},"@container (width > 400px){}",[861,2470,2449],{},[861,2472,2431],{},[843,2474,2475,2478,2481,2489,2491],{},[861,2476,2477],{},"Anchor Positioning",[861,2479,2480],{},"Anchor one element's position to another (tooltip \u002F popover \u002F menu), replacing a lot of JS math",[861,2482,2483,2465,2486],{},[2415,2484,2485],{},"anchor-name: --a;",[2415,2487,2488],{},"top: anchor(--a bottom);",[861,2490,2428],{},[861,2492,2431],{},[843,2494,2495,2500,2503,2508,2510],{},[861,2496,2497],{},[2415,2498,2499],{},"@position-try",[861,2501,2502],{},"Fallback for anchor positioning: auto-flip when there isn't enough room",[861,2504,2505],{},[2415,2506,2507],{},"position-try-fallbacks: flip-block;",[861,2509,2428],{},[861,2511,2512],{},"⬜",[843,2514,2515,2524,2527,2535,2537],{},[861,2516,2517,2520,2521],{},[2415,2518,2519],{},"reading-flow"," \u002F ",[2415,2522,2523],{},"reading-order",[861,2525,2526],{},"When flex\u002Fgrid visual order is reordered, fix keyboard and screen-reader reading order (an accessibility must)",[861,2528,2529,2520,2532],{},[2415,2530,2531],{},"reading-flow: flex-visual;",[2415,2533,2534],{},"reading-order: 1;",[861,2536,2428],{},[861,2538,2431],{},[843,2540,2541,2554,2568,2577,2580],{},[861,2542,2543,2544,2520,2547,2520,2550,2553],{},"Gap Decorations (",[2415,2545,2546],{},"row-rule",[2415,2548,2549],{},"column-rule",[2415,2551,2552],{},"rule",")",[861,2555,2556,2557,2560,2561,2560,2564,2567],{},"Draw and style separators directly in grid\u002Fflex gaps—no more divider elements; plus fine-grain ",[2415,2558,2559],{},"rule-inset","\u002F",[2415,2562,2563],{},"rule-overlap",[2415,2565,2566],{},"rule-visibility-items"," (Chrome\u002FEdge 149+)",[861,2569,2570,2573,2574],{},[2415,2571,2572],{},"column-rule: 1px solid; row-rule: 1px solid;"," or shorthand ",[2415,2575,2576],{},"rule: 1px solid;",[861,2578,2579],{},"🟡",[861,2581,2431],{},[843,2583,2584,2589,2596,2601,2603],{},[861,2585,2586],{},[2415,2587,2588],{},"margin-inline",[861,2590,2591,2592,2595],{},"Logical property; set both inline-axis margins at once (often ",[2415,2593,2594],{},"auto"," to center)",[861,2597,2598],{},[2415,2599,2600],{},"margin-inline: auto;",[861,2602,2449],{},[861,2604,2431],{},[843,2606,2607,2610,2632,2637,2639],{},[861,2608,2609],{},"Two-value display",[861,2611,2612,2613,2616,2617,2620,2621,2624,2625,2620,2628,2631],{},"Write outer × inner display separately: ",[2415,2614,2615],{},"display: block flex"," etc.; ",[2415,2618,2619],{},"flex"," = ",[2415,2622,2623],{},"block flex",", ",[2415,2626,2627],{},"inline-flex",[2415,2629,2630],{},"inline flex",". Clarifies display's two layers; single-value shorthands still fine day-to-day",[861,2633,2634],{},[2415,2635,2636],{},"display: inline flex;",[861,2638,2579],{},[861,2640,2431],{},[23,2642,2644],{"id":2643},"b-selectors","B. Selectors",[837,2646,2647,2661],{},[840,2648,2649],{},[843,2650,2651,2653,2655,2657,2659],{},[846,2652,2395],{},[846,2654,2398],{},[846,2656,2401],{},[846,2658,2404],{},[846,2660,2407],{},[856,2662,2663,2682,2701,2729,2752,2771,2793,2815,2837,2857],{},[843,2664,2665,2670,2673,2678,2680],{},[861,2666,2667],{},[2415,2668,2669],{},":has()",[861,2671,2672],{},"The \"parent selector\" \u002F select by descendant or sibling state—a logic powerhouse",[861,2674,2675],{},[2415,2676,2677],{},".card:has(img){}",[861,2679,2449],{},[861,2681,2431],{},[843,2683,2684,2689,2692,2697,2699],{},[861,2685,2686],{},[2415,2687,2688],{},"::part()",[861,2690,2691],{},"Style a specific element inside a Web Component from the outside (needs Shadow DOM knowledge)",[861,2693,2694],{},[2415,2695,2696],{},"my-el::part(label){}",[861,2698,2449],{},[861,2700,2431],{},[843,2702,2703,2711,2720,2725,2727],{},[861,2704,2705,2520,2708],{},[2415,2706,2707],{},":is()",[2415,2709,2710],{},":where()",[861,2712,2713,2714,2716,2717,2719],{},"Group selectors; ",[2415,2715,2710],{}," has 0 specificity (lower than inline), ",[2415,2718,2707],{}," takes its highest-specificity member",[861,2721,2722],{},[2415,2723,2724],{},":is(h1,h2) :where(.x){}",[861,2726,2449],{},[861,2728,2431],{},[843,2730,2731,2737,2743,2748,2750],{},[861,2732,2733,2736],{},[2415,2734,2735],{},"nth-of"," syntax",[861,2738,2739,2742],{},[2415,2740,2741],{},":nth-child(An+B of S)","—count the nth item within a filtered subset",[861,2744,2745],{},[2415,2746,2747],{},":nth-child(2 of .active){}",[861,2749,2449],{},[861,2751,2431],{},[843,2753,2754,2759,2762,2767,2769],{},[861,2755,2756],{},[2415,2757,2758],{},":placeholder-shown",[861,2760,2761],{},"Style only while the placeholder is still showing (floating-label effect)",[861,2763,2764],{},[2415,2765,2766],{},"input:placeholder-shown{}",[861,2768,2449],{},[861,2770,2431],{},[843,2772,2773,2781,2784,2789,2791],{},[861,2774,2775,2520,2778],{},[2415,2776,2777],{},":in-range",[2415,2779,2780],{},":out-of-range",[861,2782,2783],{},"Style form values inside\u002Foutside their min\u002Fmax range",[861,2785,2786],{},[2415,2787,2788],{},"input:out-of-range{}",[861,2790,2449],{},[861,2792,2431],{},[843,2794,2795,2803,2806,2811,2813],{},[861,2796,2797,2520,2800],{},[2415,2798,2799],{},":user-valid",[2415,2801,2802],{},":user-invalid",[861,2804,2805],{},"Show validation state only after the user has interacted—no angry red on load",[861,2807,2808],{},[2415,2809,2810],{},"input:user-invalid{}",[861,2812,2579],{},[861,2814,2431],{},[843,2816,2817,2825,2828,2833,2835],{},[861,2818,2819,2520,2822],{},[2415,2820,2821],{},"sibling-index()",[2415,2823,2824],{},"sibling-count()",[861,2826,2827],{},"Get an element's index and total among siblings; enables staggered animation, dynamic widths",[861,2829,2830],{},[2415,2831,2832],{},"--i: sibling-index();",[861,2834,2428],{},[861,2836,2431],{},[843,2838,2839,2844,2847,2852,2855],{},[861,2840,2841],{},[2415,2842,2843],{},":heading",[861,2845,2846],{},"Select all headings at once; still a proposal",[861,2848,2849],{},[2415,2850,2851],{},":heading{}",[861,2853,2854],{},"🔴",[861,2856,2512],{},[843,2858,2859,2862,2874,2879,2881],{},[861,2860,2861],{},"Carousel selectors",[861,2863,2864,2520,2867,2520,2870,2873],{},[2415,2865,2866],{},"::scroll-marker",[2415,2868,2869],{},"scroll-marker-group",[2415,2871,2872],{},":target-current"," for native carousels and scrollspy",[861,2875,2876],{},[2415,2877,2878],{},":target-current{}",[861,2880,2428],{},[861,2882,2512],{},[23,2884,2886],{"id":2885},"c-color","C. Color",[837,2888,2889,2903],{},[840,2890,2891],{},[843,2892,2893,2895,2897,2899,2901],{},[846,2894,2395],{},[846,2896,2398],{},[846,2898,2401],{},[846,2900,2404],{},[846,2902,2407],{},[856,2904,2905,2936,2958,2977,2996,3019,3044],{},[843,2906,2907,2914,2927,2932,2934],{},[861,2908,2909,2910,2913],{},"New color functions (",[2415,2911,2912],{},"oklch","-first)",[861,2915,2916,2919,2920,2922,2923,2926],{},[2415,2917,2918],{},"hwb\u002Flab\u002Flch\u002Fcolor()"," for wider gamuts; I've settled on ",[2415,2921,2912],{},", which supports the ",[2415,2924,2925],{},"oklch(from …)"," relative syntax",[861,2928,2929],{},[2415,2930,2931],{},"color: oklch(0.7 0.15 200 \u002F 50%);",[861,2933,2449],{},[861,2935,2431],{},[843,2937,2938,2943,2949,2954,2956],{},[861,2939,2940],{},[2415,2941,2942],{},"color-mix()",[861,2944,2945,2946,2948],{},"Mix two colors (best done in ",[2415,2947,2912],{}," space) for hover variants and transparent overlays",[861,2950,2951],{},[2415,2952,2953],{},"color-mix(in oklch, red 40%, blue);",[861,2955,2449],{},[861,2957,2431],{},[843,2959,2960,2965,2968,2973,2975],{},[861,2961,2962],{},[2415,2963,2964],{},"contrast-color()",[861,2966,2967],{},"Auto-pick a readable foreground color for a given background (compliance \u002F readability)",[861,2969,2970],{},[2415,2971,2972],{},"color: contrast-color(var(--bg));",[861,2974,2428],{},[861,2976,2512],{},[843,2978,2979,2984,2987,2992,2994],{},[861,2980,2981],{},[2415,2982,2983],{},"accent-color",[861,2985,2986],{},"One line to re-theme checkbox\u002Fradio\u002Frange and other system controls",[861,2988,2989],{},[2415,2990,2991],{},"accent-color: rebeccapurple;",[861,2993,2449],{},[861,2995,2431],{},[843,2997,2998,3003,3010,3015,3017],{},[861,2999,3000],{},[2415,3001,3002],{},"light-dark()",[861,3004,3005,3006,3009],{},"Give a property both a light and dark value at once; with ",[2415,3007,3008],{},"color-scheme"," it skips the media query",[861,3011,3012],{},[2415,3013,3014],{},"color: light-dark(#000, #fff);",[861,3016,2449],{},[861,3018,2431],{},[843,3020,3021,3029,3032,3040,3042],{},[861,3022,3023,2520,3026],{},[2415,3024,3025],{},"font-palette",[2415,3027,3028],{},"@font-palette-values",[861,3030,3031],{},"Custom palettes for color (COLR) fonts",[861,3033,3034,2465,3037],{},[2415,3035,3036],{},"@font-palette-values --p{...}",[2415,3038,3039],{},"font-palette: --p;",[861,3041,2579],{},[861,3043,2431],{},[843,3045,3046,3049,3055,3060,3062],{},[861,3047,3048],{},"Gradient interpolation color space",[861,3050,3051,3054],{},[2415,3052,3053],{},"linear-gradient(in oklch …)"," makes gradient transitions smoother and less muddy",[861,3056,3057],{},[2415,3058,3059],{},"background: linear-gradient(in oklch, #4ba3f7, #9d2398);",[861,3061,2449],{},[861,3063,2431],{},[23,3065,3067],{"id":3066},"d-typography","D. Typography",[837,3069,3070,3084],{},[840,3071,3072],{},[843,3073,3074,3076,3078,3080,3082],{},[846,3075,2395],{},[846,3077,2398],{},[846,3079,2401],{},[846,3081,2404],{},[846,3083,2407],{},[856,3085,3086,3114,3133,3152,3171,3190,3209,3228,3247,3277,3296,3315,3335,3358],{},[843,3087,3088,3096,3105,3110,3112],{},[861,3089,3090,2520,3093],{},[2415,3091,3092],{},"text-wrap: balance",[2415,3094,3095],{},"pretty",[861,3097,3098,3101,3102,3104],{},[2415,3099,3100],{},"balance"," evens out heading line widths; ",[2415,3103,3095],{}," avoids orphan words in body text (pretty is newer)",[861,3106,3107],{},[2415,3108,3109],{},"text-wrap: balance;",[861,3111,2579],{},[861,3113,2431],{},[843,3115,3116,3121,3124,3129,3131],{},[861,3117,3118],{},[2415,3119,3120],{},"text-decoration-skip-ink",[861,3122,3123],{},"Break the underline around descenders (g, y) for a cleaner look",[861,3125,3126],{},[2415,3127,3128],{},"text-decoration-skip-ink: auto;",[861,3130,2449],{},[861,3132,2431],{},[843,3134,3135,3140,3143,3148,3150],{},[861,3136,3137],{},[2415,3138,3139],{},"text-combine-upright",[861,3141,3142],{},"Lay numbers\u002FLatin horizontally within vertical text (\"tate-chu-yoko\"); common in CJK long-form",[861,3144,3145],{},[2415,3146,3147],{},"text-combine-upright: all;",[861,3149,2579],{},[861,3151,2431],{},[843,3153,3154,3159,3162,3167,3169],{},[861,3155,3156],{},[2415,3157,3158],{},"text-emphasis",[861,3160,3161],{},"Emphasis dots\u002Fcircles that track the character center; common CJK annotation",[861,3163,3164],{},[2415,3165,3166],{},"text-emphasis: dot;",[861,3168,2449],{},[861,3170,2431],{},[843,3172,3173,3178,3181,3186,3188],{},[861,3174,3175],{},[2415,3176,3177],{},"ruby-align",[861,3179,3180],{},"Alignment of ruby annotations (bopomofo \u002F pinyin, etc.)",[861,3182,3183],{},[2415,3184,3185],{},"ruby-align: center;",[861,3187,2579],{},[861,3189,2431],{},[843,3191,3192,3197,3200,3205,3207],{},[861,3193,3194],{},[2415,3195,3196],{},"paint-order",[861,3198,3199],{},"Control the paint order of text fill vs. stroke (for outlined text)",[861,3201,3202],{},[2415,3203,3204],{},"paint-order: stroke fill;",[861,3206,2449],{},[861,3208,2431],{},[843,3210,3211,3216,3219,3224,3226],{},[861,3212,3213],{},[2415,3214,3215],{},"box-decoration-break: clone",[861,3217,3218],{},"On line\u002Fpage breaks, apply border\u002Fradius\u002Fbackground to each fragment; especially nice for link focus",[861,3220,3221],{},[2415,3222,3223],{},"box-decoration-break: clone;",[861,3225,2579],{},[861,3227,2431],{},[843,3229,3230,3235,3238,3243,3245],{},[861,3231,3232],{},[2415,3233,3234],{},"text-box-trim",[861,3236,3237],{},"Trim the extra space above\u002Fbelow a font for precise vertical alignment",[861,3239,3240],{},[2415,3241,3242],{},"text-box: trim-both cap alphabetic;",[861,3244,2428],{},[861,3246,2431],{},[843,3248,3249,3258,3264,3273,3275],{},[861,3250,3251,3254,3255,2553],{},[2415,3252,3253],{},"line-clamp"," (",[2415,3256,3257],{},"-webkit-line-clamp",[861,3259,3260,3261,3263],{},"Show \"…\" after N lines; the new standard ",[2415,3262,3253],{}," is gradually replacing the webkit form",[861,3265,3266,3269,3270,2553],{},[2415,3267,3268],{},"-webkit-line-clamp: 3;"," (needs ",[2415,3271,3272],{},"-webkit-box",[861,3274,2449],{},[861,3276,2431],{},[843,3278,3279,3284,3287,3292,3294],{},[861,3280,3281],{},[2415,3282,3283],{},"hanging-punctuation",[861,3285,3286],{},"Hang leading\u002Ftrailing punctuation outside the edge for tidier alignment (Safari-first)",[861,3288,3289],{},[2415,3290,3291],{},"hanging-punctuation: first last;",[861,3293,2428],{},[861,3295,2512],{},[843,3297,3298,3303,3306,3311,3313],{},[861,3299,3300],{},[2415,3301,3302],{},"font-variant-numeric: tabular-nums",[861,3304,3305],{},"Monospaced digits—essential for timers\u002Fprices\u002Fpercentages that jitter (font must support it)",[861,3307,3308],{},[2415,3309,3310],{},"font-variant-numeric: tabular-nums;",[861,3312,2449],{},[861,3314,2431],{},[843,3316,3317,3323,3326,3331,3333],{},[861,3318,3319,3322],{},[2415,3320,3321],{},"lh"," unit",[861,3324,3325],{},"Set margin\u002Fspacing in line-height units so they scale with font size",[861,3327,3328],{},[2415,3329,3330],{},"margin-bottom: 1.5lh;",[861,3332,2579],{},[861,3334,2431],{},[843,3336,3337,3342,3349,3354,3356],{},[861,3338,3339],{},[2415,3340,3341],{},"margin-trim",[861,3343,3344,3345,3348],{},"Trim margins of the first\u002Flast children in a container, avoiding ",[2415,3346,3347],{},":first\u002F:last-child"," resets (Safari-first)",[861,3350,3351],{},[2415,3352,3353],{},"margin-trim: block;",[861,3355,2428],{},[861,3357,2512],{},[843,3359,3360,3365,3368,3373,3375],{},[861,3361,3362],{},[2415,3363,3364],{},"text-fit",[861,3366,3367],{},"Auto-scales font size so text exactly fills its container's width—responsive headlines without manual math or JS (new in Chrome 150)",[861,3369,3370],{},[2415,3371,3372],{},"h1 { text-fit: auto; }",[861,3374,2428],{},[861,3376,2512],{},[23,3378,3380],{"id":3379},"e-animation-transition","E. Animation & Transition",[837,3382,3383,3397],{},[840,3384,3385],{},[843,3386,3387,3389,3391,3393,3395],{},[846,3388,2395],{},[846,3390,2398],{},[846,3392,2401],{},[846,3394,2404],{},[846,3396,2407],{},[856,3398,3399,3419,3449,3472,3491],{},[843,3400,3401,3404,3410,3415,3417],{},[861,3402,3403],{},"Scroll-driven animation (formerly \"@scroll-timeline\")",[861,3405,3406,3407],{},"Drive animation by scroll progress instead of time; the spec is now ",[2415,3408,3409],{},"animation-timeline: scroll()\u002Fview()",[861,3411,3412],{},[2415,3413,3414],{},"animation-timeline: scroll();",[861,3416,2428],{},[861,3418,2431],{},[843,3420,3421,3429,3440,3445,3447],{},[861,3422,3423,2520,3426],{},[2415,3424,3425],{},"@view-transition",[2415,3427,3428],{},"transition-behavior",[861,3430,3431,3432,3435,3436,3439],{},"Transitions for page\u002Fstate changes; ",[2415,3433,3434],{},"allow-discrete"," lets discrete properties like ",[2415,3437,3438],{},"display"," transition",[861,3441,3442],{},[2415,3443,3444],{},"transition-behavior: allow-discrete;",[861,3446,2579],{},[861,3448,2431],{},[843,3450,3451,3456,3463,3468,3470],{},[861,3452,3453],{},[2415,3454,3455],{},"@starting-style",[861,3457,3458,3459,3462],{},"Define an element's first-appearance start styles; enables ",[2415,3460,3461],{},"display:none → shown"," entry animations",[861,3464,3465],{},[2415,3466,3467],{},"@starting-style{ opacity:0; }",[861,3469,2579],{},[861,3471,2431],{},[843,3473,3474,3479,3482,3487,3489],{},[861,3475,3476],{},[2415,3477,3478],{},"backface-visibility",[861,3480,3481],{},"Whether the back face shows during a 3D flip (card-flip effect)",[861,3483,3484],{},[2415,3485,3486],{},"backface-visibility: hidden;",[861,3488,2449],{},[861,3490,2431],{},[843,3492,3493,3498,3505,3510,3512],{},[861,3494,3495],{},[2415,3496,3497],{},"prefers-reduced-motion",[861,3499,3500,3501,3504],{},"Detect the reduced-motion preference, an accessibility must; pairs with ",[2415,3502,3503],{},"prefers-color-scheme"," for light\u002Fdark",[861,3506,3507],{},[2415,3508,3509],{},"@media (prefers-reduced-motion: reduce){}",[861,3511,2449],{},[861,3513,2431],{},[23,3515,3517],{"id":3516},"f-forms-components","F. Forms & Components",[837,3519,3520,3534],{},[840,3521,3522],{},[843,3523,3524,3526,3528,3530,3532],{},[846,3525,2395],{},[846,3527,2398],{},[846,3529,2401],{},[846,3531,2404],{},[846,3533,2407],{},[856,3535,3536,3555,3578,3601],{},[843,3537,3538,3543,3546,3551,3553],{},[861,3539,3540],{},[2415,3541,3542],{},"field-sizing: content",[861,3544,3545],{},"Let input\u002Ftextarea grow automatically to fit their content",[861,3547,3548],{},[2415,3549,3550],{},"field-sizing: content;",[861,3552,2428],{},[861,3554,2431],{},[843,3556,3557,3566,3569,3574,3576],{},[861,3558,3559,3560,3254,3563,2553],{},"Customizable ",[2415,3561,3562],{},"\u003Cselect>",[2415,3564,3565],{},"appearance: base-select",[861,3567,3568],{},"Fully style the native dropdown; options can hold icons\u002FHTML",[861,3570,3571],{},[2415,3572,3573],{},"select{ appearance: base-select; }",[861,3575,2428],{},[861,3577,2431],{},[843,3579,3580,3589,3592,3597,3599],{},[861,3581,3582,3585,3586,2553],{},[2415,3583,3584],{},"\u003Cselectlist>"," (formerly ",[2415,3587,3588],{},"\u003Cselectmenu>",[861,3590,3591],{},"A highly customizable dropdown component; renamed and folded into the \"customizable select\" track",[861,3593,3594],{},[2415,3595,3596],{},"\u003Cselectlist>…\u003C\u002Fselectlist>",[861,3598,2428],{},[861,3600,2431],{},[843,3602,3603,3608,3615,3620,3622],{},[861,3604,3605],{},[2415,3606,3607],{},"::backdrop",[861,3609,3610,3611,3614],{},"Style the layer behind ",[2415,3612,3613],{},"dialog.showModal()"," or fullscreen",[861,3616,3617],{},[2415,3618,3619],{},"dialog::backdrop{}",[861,3621,2449],{},[861,3623,2431],{},[23,3625,3627],{"id":3626},"g-responsive-preferences","G. Responsive & Preferences",[837,3629,3630,3644],{},[840,3631,3632],{},[843,3633,3634,3636,3638,3640,3642],{},[846,3635,2395],{},[846,3637,2398],{},[846,3639,2401],{},[846,3641,2404],{},[846,3643,2407],{},[856,3645,3646,3677,3695,3714,3733,3753,3773],{},[843,3647,3648,3651,3668,3673,3675],{},[861,3649,3650],{},"Media query range syntax",[861,3652,3653,3654,2560,3657,3660,3661,2465,3664,3667],{},"Write breakpoints with ",[2415,3655,3656],{},"\u003C=",[2415,3658,3659],{},">=",", skipping the ",[2415,3662,3663],{},"min-width",[2415,3665,3666],{},"320.01px"," pain",[861,3669,3670],{},[2415,3671,3672],{},"@media (width >= 320px){}",[861,3674,2449],{},[861,3676,2431],{},[843,3678,3679,3683,3686,3691,3693],{},[861,3680,3681],{},[2415,3682,3503],{},[861,3684,3685],{},"Detect dark\u002Flight theme preference",[861,3687,3688],{},[2415,3689,3690],{},"@media (prefers-color-scheme: dark){}",[861,3692,2449],{},[861,3694,2431],{},[843,3696,3697,3702,3705,3710,3712],{},[861,3698,3699],{},[2415,3700,3701],{},"prefers-contrast",[861,3703,3704],{},"Detect a request for more\u002Fless contrast",[861,3706,3707],{},[2415,3708,3709],{},"@media (prefers-contrast: more){}",[861,3711,2579],{},[861,3713,2431],{},[843,3715,3716,3721,3724,3729,3731],{},[861,3717,3718],{},[2415,3719,3720],{},"forced-colors",[861,3722,3723],{},"Adjust for high-contrast \u002F forced-colors mode (Windows High Contrast)",[861,3725,3726],{},[2415,3727,3728],{},"@media (forced-colors: active){}",[861,3730,2449],{},[861,3732,2431],{},[843,3734,3735,3741,3744,3749,3751],{},[861,3736,3737,3740],{},[2415,3738,3739],{},"resolution"," media",[861,3742,3743],{},"Switch by output device pixel density (e.g. Retina)",[861,3745,3746],{},[2415,3747,3748],{},"@media (resolution >= 2dppx){}",[861,3750,2449],{},[861,3752,2431],{},[843,3754,3755,3761,3764,3769,3771],{},[861,3756,3757,3758],{},"Style Queries ",[2415,3759,3760],{},"@container style()",[861,3762,3763],{},"Style by a container's custom-property value (e.g. theme); great for component variants",[861,3765,3766],{},[2415,3767,3768],{},"@container style(--theme: dark){}",[861,3770,2579],{},[861,3772,2431],{},[843,3774,3775,3778,3788,3793,3795],{},[861,3776,3777],{},"Scroll-State Queries",[861,3779,3780,3781,2624,3784,3787],{},"Style by a container's scroll state (e.g. ",[2415,3782,3783],{},"stuck",[2415,3785,3786],{},"snapped","); can detect whether a sticky element is stuck",[861,3789,3790],{},[2415,3791,3792],{},"@container scroll-state(stuck: top){}",[861,3794,2428],{},[861,3796,2431],{},[23,3798,3800],{"id":3799},"h-encapsulation-performance","H. Encapsulation & Performance",[837,3802,3803,3817],{},[840,3804,3805],{},[843,3806,3807,3809,3811,3813,3815],{},[846,3808,2395],{},[846,3810,2398],{},[846,3812,2401],{},[846,3814,2404],{},[846,3816,2407],{},[856,3818,3819,3839,3858,3877,3900,3919,3941],{},[843,3820,3821,3827,3830,3835,3837],{},[861,3822,3823,3824],{},"Cascade Layers ",[2415,3825,3826],{},"@layer",[861,3828,3829],{},"Manage priority with layers to tame specificity in large projects",[861,3831,3832],{},[2415,3833,3834],{},"@layer base, components, utilities;",[861,3836,2449],{},[861,3838,2431],{},[843,3840,3841,3846,3849,3854,3856],{},[861,3842,3843],{},[2415,3844,3845],{},"@scope",[861,3847,3848],{},"Scope styles to a block with an optional lower bound, similar to CSS Modules scoping",[861,3850,3851],{},[2415,3852,3853],{},"@scope (.card) to (.content){}",[861,3855,2579],{},[861,3857,2431],{},[843,3859,3860,3865,3868,3873,3875],{},[861,3861,3862],{},[2415,3863,3864],{},"contain",[861,3866,3867],{},"Declare inner layout\u002Fstyle independence to isolate reflow and boost performance",[861,3869,3870],{},[2415,3871,3872],{},"contain: layout style;",[861,3874,2449],{},[861,3876,2431],{},[843,3878,3879,3884,3891,3896,3898],{},[861,3880,3881],{},[2415,3882,3883],{},"contain-intrinsic-size",[861,3885,3886,3887,3890],{},"With ",[2415,3888,3889],{},"content-visibility: auto",", give an estimated size first to avoid scroll jumps; switches to auto once cached",[861,3892,3893],{},[2415,3894,3895],{},"contain-intrinsic-size: auto 100px;",[861,3897,2449],{},[861,3899,2431],{},[843,3901,3902,3907,3910,3915,3917],{},[861,3903,3904],{},[2415,3905,3906],{},"scrollbar-gutter: stable",[861,3908,3909],{},"Reserve the scrollbar gutter so content doesn't shift when the scrollbar appears",[861,3911,3912],{},[2415,3913,3914],{},"scrollbar-gutter: stable;",[861,3916,2579],{},[861,3918,2431],{},[843,3920,3921,3929,3932,3937,3939],{},[861,3922,3923,2520,3926],{},[2415,3924,3925],{},"scrollbar-color",[2415,3927,3928],{},"scrollbar-width",[861,3930,3931],{},"Customize scrollbar color and thickness",[861,3933,3934],{},[2415,3935,3936],{},"scrollbar-color: #888 #eee;",[861,3938,2579],{},[861,3940,2431],{},[843,3942,3943,3948,3951,3956,3958],{},[861,3944,3945],{},[2415,3946,3947],{},"@supports",[861,3949,3950],{},"Feature detection for progressive enhancement and fallbacks",[861,3952,3953],{},[2415,3954,3955],{},"@supports (display: grid){}",[861,3957,2449],{},[861,3959,2431],{},[23,3961,3963],{"id":3962},"i-functions-math","I. Functions & Math",[837,3965,3966,3980],{},[840,3967,3968],{},[843,3969,3970,3972,3974,3976,3978],{},[846,3971,2395],{},[846,3973,2398],{},[846,3975,2401],{},[846,3977,2404],{},[846,3979,2407],{},[856,3981,3982,4007,4027,4055,4074,4093],{},[843,3983,3984,3995,3998,4003,4005],{},[861,3985,3986,2520,3989,2520,3992],{},[2415,3987,3988],{},"round()",[2415,3990,3991],{},"mod()",[2415,3993,3994],{},"rem()",[861,3996,3997],{},"Rounding and remainders in CSS, to align to a grid\u002Frhythm",[861,3999,4000],{},[2415,4001,4002],{},"width: round(down, 15.5px, 4px);",[861,4004,2579],{},[861,4006,2431],{},[843,4008,4009,4015,4018,4023,4025],{},[861,4010,4011,4012],{},"Trig functions ",[2415,4013,4014],{},"sin\u002Fcos\u002Ftan",[861,4016,4017],{},"Circular layouts, waveforms, angle math",[861,4019,4020],{},[2415,4021,4022],{},"width: calc(sin(30deg) * 100px);",[861,4024,2449],{},[861,4026,2431],{},[843,4028,4029,4037,4046,4051,4053],{},[861,4030,4031,2520,4034],{},[2415,4032,4033],{},"calc-size()",[2415,4035,4036],{},"interpolate-size",[861,4038,4039,4040,2560,4042,4045],{},"Animate transitions to keywords like ",[2415,4041,2594],{},[2415,4043,4044],{},"min-content",", e.g. an accordion expanding to an unknown height",[861,4047,4048],{},[2415,4049,4050],{},"interpolate-size: allow-keywords;",[861,4052,2428],{},[861,4054,2431],{},[843,4056,4057,4062,4065,4070,4072],{},[861,4058,4059],{},[2415,4060,4061],{},"random()",[861,4063,4064],{},"Native random values in CSS (scatter, jitter effects)",[861,4066,4067],{},[2415,4068,4069],{},"rotate: random(-5deg, 5deg);",[861,4071,2428],{},[861,4073,2431],{},[843,4075,4076,4081,4084,4089,4091],{},[861,4077,4078],{},[2415,4079,4080],{},"if()",[861,4082,4083],{},"Conditional logic inside a property value",[861,4085,4086],{},[2415,4087,4088],{},"display: if(style(--open: 1): block; else: none);",[861,4090,2428],{},[861,4092,2512],{},[843,4094,4095,4100,4103,4108,4110],{},[861,4096,4097],{},[2415,4098,4099],{},"@function",[861,4101,4102],{},"Custom CSS functions \u002F a mixin-like concept, with parameters and a return value",[861,4104,4105],{},[2415,4106,4107],{},"@function --double(--x){ result: calc(var(--x)*2); }",[861,4109,2428],{},[861,4111,2512],{},[23,4113,4115],{"id":4114},"j-misc","J. Misc",[837,4117,4118,4132],{},[840,4119,4120],{},[843,4121,4122,4124,4126,4128,4130],{},[846,4123,2395],{},[846,4125,2398],{},[846,4127,2401],{},[846,4129,2404],{},[846,4131,2407],{},[856,4133,4134,4151,4169,4188,4207,4233,4252,4285,4310,4334],{},[843,4135,4136,4139,4142,4147,4149],{},[861,4137,4138],{},"Native Nesting",[861,4140,4141],{},"Sass\u002FSCSS-style nesting without a preprocessor",[861,4143,4144],{},[2415,4145,4146],{},".card{ & .title{} }",[861,4148,2449],{},[861,4150,2431],{},[843,4152,4153,4158,4161,4165,4167],{},[861,4154,4155],{},[2415,4156,4157],{},"\u003Cimg loading=\"lazy\">",[861,4159,4160],{},"Lazy-load images to improve first-paint performance",[861,4162,4163],{},[2415,4164,4157],{},[861,4166,2449],{},[861,4168,2431],{},[843,4170,4171,4176,4179,4184,4186],{},[861,4172,4173],{},[2415,4174,4175],{},"overscroll-behavior: contain",[861,4177,4178],{},"Stop a scrolled-to-the-end block from scrolling the outer container (common for modals\u002Fsidebars)",[861,4180,4181],{},[2415,4182,4183],{},"overscroll-behavior: contain;",[861,4185,2449],{},[861,4187,2431],{},[843,4189,4190,4195,4198,4203,4205],{},[861,4191,4192],{},[2415,4193,4194],{},"object-view-box",[861,4196,4197],{},"Crop a region of an image directly in CSS, no separate cropped file needed",[861,4199,4200],{},[2415,4201,4202],{},"object-view-box: inset(10% 10% 10% 10%);",[861,4204,2428],{},[861,4206,2431],{},[843,4208,4209,4212,4224,4229,4231],{},[861,4210,4211],{},"Individual transform properties",[861,4213,4214,2560,4217,2560,4220,4223],{},[2415,4215,4216],{},"translate",[2415,4218,4219],{},"rotate",[2415,4221,4222],{},"scale"," as their own properties, easier to animate separately",[861,4225,4226],{},[2415,4227,4228],{},"rotate: 45deg; scale: 1.2;",[861,4230,2449],{},[861,4232,2431],{},[843,4234,4235,4240,4243,4248,4250],{},[861,4236,4237],{},[2415,4238,4239],{},"border-image",[861,4241,4242],{},"Complex borders from a sliced image, avoiding traditional slicing",[861,4244,4245],{},[2415,4246,4247],{},"border-image: url(frame.png) 30 round;",[861,4249,2449],{},[861,4251,2431],{},[843,4253,4254,4259,4276,4281,4283],{},[861,4255,4256],{},[2415,4257,4258],{},"background-clip: border-area",[861,4260,4261,4262,2560,4265,4268,4269,4272,4273,4275],{},"Clips the background to the area painted by the border strokes (respecting ",[2415,4263,4264],{},"border-width",[2415,4266,4267],{},"border-style",", ignoring ",[2415,4270,4271],{},"border-color"," transparency), so gradient borders work natively instead of via ",[2415,4274,4239],{}," workarounds (new in Chrome 150)",[861,4277,4278],{},[2415,4279,4280],{},"border: 3px solid transparent; background: linear-gradient(45deg, red, blue); background-clip: border-area;",[861,4282,2428],{},[861,4284,2512],{},[843,4286,4287,4292,4301,4306,4308],{},[861,4288,4289],{},[2415,4290,4291],{},"corner-shape",[861,4293,4294,4295,4298,4299],{},"Corner shapes beyond ",[2415,4296,4297],{},"border-radius"," (squircle \u002F notched, etc.), used together with ",[2415,4300,4297],{},[861,4302,4303],{},[2415,4304,4305],{},"corner-shape: squircle; border-radius: 30px;",[861,4307,2428],{},[861,4309,2512],{},[843,4311,4312,4318,4321,4330,4332],{},[861,4313,4314,4315,2553],{},"Font smoothing (",[2415,4316,4317],{},"-webkit-font-smoothing",[861,4319,4320],{},"The key to non-harsh text in dark mode: on macOS, light text on a dark background looks bold and glowing due to subpixel antialiasing; grayscale antialiasing makes it thinner and gentler. Non-standard, works only on certain platforms",[861,4322,4323,4326,4327,2553],{},[2415,4324,4325],{},"-webkit-font-smoothing: antialiased;"," (+ ",[2415,4328,4329],{},"-moz-osx-font-smoothing: grayscale;",[861,4331,2579],{},[861,4333,2431],{},[843,4335,4336,4344,4347,4352,4354],{},[861,4337,4338,2520,4341],{},[2415,4339,4340],{},"@when",[2415,4342,4343],{},"@else",[861,4345,4346],{},"CSS if\u002Felse conditional blocks; still a proposal, unusable in any browser",[861,4348,4349],{},[2415,4350,4351],{},"@when supports(...){} @else{}",[861,4353,2854],{},[861,4355,2431],{},[23,4357,4359],{"id":4358},"k-html-attributes-not-css-but-closely-tied-to-accessibility","K. HTML Attributes (Not CSS, but Closely Tied to Accessibility)",[10,4361,4362],{},"Strictly speaking this section isn't CSS, but it replaces a pile of hand-written JS keyboard logic with a declarative attribute and directly affects accessibility quality — so it belongs in the same checklist.",[837,4364,4365,4379],{},[840,4366,4367],{},[843,4368,4369,4371,4373,4375,4377],{},[846,4370,2395],{},[846,4372,2398],{},[846,4374,2401],{},[846,4376,2404],{},[846,4378,2407],{},[856,4380,4381,4400],{},[843,4382,4383,4388,4391,4396,4398],{},[861,4384,4385],{},[2415,4386,4387],{},"focusgroup",[861,4389,4390],{},"Declaratively gives composite widgets (toolbars, tab lists, menus) arrow-key navigation, a guaranteed tab stop, and last-focused memory — exactly the WAI-ARIA keyboard pattern you previously had to hand-roll with roving tabindex (new in Chrome 150)",[861,4392,4393],{},[2415,4394,4395],{},"\u003Cdiv focusgroup>…\u003C\u002Fdiv>",[861,4397,2428],{},[861,4399,2512],{},[843,4401,4402,4411,4433,4438,4440],{},[861,4403,4404,4405,2520,4408,2553],{},"Invoker Commands (",[2415,4406,4407],{},"command",[2415,4409,4410],{},"commandfor",[861,4412,4413,4414,2624,4417,2624,4420,2624,4423,2624,4426,2624,4429,4432],{},"Control a popover\u002Fdialog with declarative HTML buttons, no scripting. Landed stable: ",[2415,4415,4416],{},"show-modal",[2415,4418,4419],{},"close",[2415,4421,4422],{},"request-close",[2415,4424,4425],{},"toggle-popover",[2415,4427,4428],{},"show-popover",[2415,4430,4431],{},"hide-popover"," (Baseline 2025; more coming — media controls, copy text, etc.)",[861,4434,4435],{},[2415,4436,4437],{},"\u003Cbutton command=\"show-modal\" commandfor=\"dlg\">Open\u003C\u002Fbutton>",[861,4439,2579],{},[861,4441,2512],{},[23,4443,4445],{"id":4444},"what-to-try-next-recommended","What to try next (recommended)",[10,4447,4448],{},"These are the ones I haven't checked off yet but are \"stable 🟢 and high ROI,\" so they're worth doing first:",[186,4450,4451,4463,4472,4477,4484,4492,4500],{},[34,4452,4453,4455,4456,2560,4458,2560,4460,4462],{},[2415,4454,2588],{}," and the individual transform properties (",[2415,4457,4216],{},[2415,4459,4219],{},[2415,4461,4222],{},")—an instant upgrade to everyday code.",[34,4464,4465,4467,4468,4471],{},[2415,4466,2735],{}," syntax (",[2415,4469,4470],{},":nth-child(… of …)",")—a sharp tool for picking subsets.",[34,4473,4474,4476],{},[2415,4475,3302],{},"—add it to any number that jitters.",[34,4478,4479,4480,4483],{},"Gradient ",[2415,4481,4482],{},"in oklch","—one line to make every gradient cleaner.",[34,4485,4486,4488,4489,4491],{},[2415,4487,3720],{}," and ",[2415,4490,3701],{},"—round out accessibility detection (I've already done reduced-motion \u002F color-scheme).",[34,4493,4494,4495,2560,4497,4499],{},"Trig functions and ",[2415,4496,3988],{},[2415,4498,3991],{},"—handy for circular layouts or aligning to a rhythm.",[34,4501,4502,4488,4504,4506],{},[2415,4503,3845],{},[2415,4505,3906],{},"—style scoping and scrollbar-shift issues in large projects.",[236,4508,4509],{},[10,4510,4511,4514,4515,4519,4520,4522],{},[1506,4512,4513],{},"Note:"," Most items marked 🟠 \u002F 🔴 only landed in Chrome in 2025–2026 or are still proposals, and support changes every quarter. Before shipping to production, treat ",[173,4516,4518],{"href":2364,"rel":4517,"target":178,"title":2366},[177],"caniuse.com"," and MDN as the source of truth, and remember to add an ",[2415,4521,3947],{}," fallback for new features.",[23,4524,4526],{"id":4525},"references","References",[31,4528,4529,4535,4542,4549,4556,4569,4583],{},[34,4530,4531],{},[173,4532,4534],{"href":2364,"rel":4533,"target":178,"title":2366},[177],"Can I use (browser support lookup)",[34,4536,4537],{},[173,4538,4541],{"href":4539,"rel":4540,"target":178,"title":2366},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS",[177],"MDN Web Docs — CSS",[34,4543,4544],{},[173,4545,4548],{"href":4546,"rel":4547,"target":178,"title":2366},"https:\u002F\u002Fweb.dev\u002Flearn\u002Fcss",[177],"web.dev — Learn CSS",[34,4550,4551],{},[173,4552,4555],{"href":4553,"rel":4554,"target":178,"title":2366},"https:\u002F\u002Fdeveloper.chrome.com\u002Ftag\u002Fcss",[177],"Chrome for Developers — CSS",[34,4557,4558],{},[173,4559,4562,4563,2624,4565,2624,4567,2553],{"href":4560,"rel":4561,"target":178,"title":2366},"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fnew-in-chrome-150",[177],"New in Chrome 150 (",[2415,4564,3364],{},[2415,4566,4258],{},[2415,4568,4387],{},[34,4570,4571],{},[173,4572,4575,4576,2560,4578,2560,4580,4582],{"href":4573,"rel":4574,"target":178,"title":2366},"https:\u002F\u002Fcss-tricks.com\u002Fcss-gap-decorations-now-available\u002F",[177],"CSS Gap Decorations Now Available (",[2415,4577,2546],{},[2415,4579,2549],{},[2415,4581,2552],{},", CSS-Tricks)",[34,4584,4585],{},[173,4586,4589],{"href":4587,"rel":4588,"target":178,"title":2366},"https:\u002F\u002Fcss-tricks.com",[177],"CSS-Tricks",{"title":659,"searchDepth":660,"depth":660,"links":4591},[4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606],{"id":2334,"depth":663,"text":2335},{"id":2341,"depth":663,"text":2342},{"id":2385,"depth":663,"text":2386},{"id":2643,"depth":663,"text":2644},{"id":2885,"depth":663,"text":2886},{"id":3066,"depth":663,"text":3067},{"id":3379,"depth":663,"text":3380},{"id":3516,"depth":663,"text":3517},{"id":3626,"depth":663,"text":3627},{"id":3799,"depth":663,"text":3800},{"id":3962,"depth":663,"text":3963},{"id":4114,"depth":663,"text":4115},{"id":4358,"depth":663,"text":4359},{"id":4444,"depth":663,"text":4445},{"id":4525,"depth":663,"text":4526},"2026-07-06","A scannable checklist of modern CSS techniques—grouped by layout, selectors, color, typography, animation and more—with each feature's purpose, example, and browser support, plus which ones to experiment with first.",{},"\u002Fen\u002Fblog\u002Fcss-techniques-checklist",{"title":2329,"description":4608},"en\u002Fblog\u002Fcss-techniques-checklist",[4614,4615,4616,4617,678,4618],"CSS","Front-End","Web Development","Responsive Design","Browser Support","css-techniques-checklist","2026-08-21","xF7LMqH5faICivF_K42XTpE6ll9QSVOeZnuOh-rxobs",{"id":4,"title":5,"body":4623,"date":667,"description":668,"draft":669,"extension":670,"meta":5054,"navigation":672,"ogImage":673,"path":674,"seo":5055,"stem":676,"tags":5056,"translationKey":673,"updatedAt":673,"__hash__":681},{"type":7,"value":4624,"toc":5048},[4625,4627,4629,4631,4633,4635,4637,4645,4647,4649,4651,4653,4655,4657,4659,4661,4663,4665,4667,4675,4677,4679,4689,4691,4693,4709,4711,4715,4717,4730,4732,4742,4744,4746,4748,4750,4752,4754,4756,4758,4760,4762,4764,4768,4770,4772,4774,4776,4778,4780,4782,4784,4786,4788,4792,4794,4800,4802,4810,4812,4814,4819,4824,4829,4834,4836,4841,4846,4848,4853,4858,4863,4865,4870,4875,4880,4882,4887,4892,4894,4899,4904,4906,4911,4916,4918,4923,4928,4933,4938,4940,4945,4950,4952,4957,4962,4967,4969,4974,4979,4981,4986,4991,4993,4998,5003,5008,5010,5015,5020,5022,5027,5032,5034,5039,5044,5046],[10,4626,12],{},[10,4628,15],{},[10,4630,18],{},[10,4632,21],{},[23,4634,26],{"id":25},[10,4636,29],{},[31,4638,4639,4641,4643],{},[34,4640,36],{},[34,4642,39],{},[34,4644,42],{},[10,4646,45],{},[47,4648,50],{"id":49},[10,4650,53],{},[10,4652,56],{},[10,4654,59],{},[10,4656,62],{},[10,4658,65],{},[10,4660,68],{},[47,4662,72],{"id":71},[74,4664,77],{"id":76},[10,4666,80],{},[31,4668,4669,4671,4673],{},[34,4670,85],{},[34,4672,88],{},[34,4674,91],{},[74,4676,95],{"id":94},[10,4678,98],{},[31,4680,4681,4683,4685,4687],{},[34,4682,103],{},[34,4684,106],{},[34,4686,109],{},[34,4688,112],{},[74,4690,116],{"id":115},[10,4692,119],{},[31,4694,4695,4697,4699,4701,4703,4705,4707],{},[34,4696,124],{},[34,4698,127],{},[34,4700,130],{},[34,4702,133],{},[34,4704,136],{},[34,4706,139],{},[34,4708,142],{},[74,4710,146],{"id":145},[31,4712,4713],{},[34,4714,151],{},[47,4716,155],{"id":154},[157,4718,4719,4723],{},[10,4720,4721],{},[162,4722],{"alt":164,"src":165},[167,4724,4725],{},[10,4726,171,4727],{},[173,4728,180],{"href":175,"rel":4729,"target":178,"title":179},[177],[47,4731,184],{"id":183},[186,4733,4734,4736,4738,4740],{},[34,4735,190],{},[34,4737,193],{},[34,4739,196],{},[34,4741,199],{},[23,4743,203],{"id":202},[47,4745,207],{"id":206},[10,4747,210],{},[10,4749,213],{},[10,4751,216],{},[10,4753,219],{},[10,4755,222],{},[10,4757,225],{},[10,4759,228],{},[10,4761,231],{},[10,4763,234],{},[236,4765,4766],{},[10,4767,240],{},[47,4769,244],{"id":243},[10,4771,247],{},[10,4773,250],{},[10,4775,253],{},[10,4777,256],{},[10,4779,259],{},[10,4781,262],{},[10,4783,265],{},[10,4785,268],{},[10,4787,271],{},[236,4789,4790],{},[10,4791,276],{},[47,4793,280],{"id":279},[31,4795,4796,4798],{},[34,4797,285],{},[34,4799,288],{},[23,4801,292],{"id":291},[186,4803,4804,4806,4808],{},[34,4805,297],{},[34,4807,300],{},[34,4809,303],{},[23,4811,307],{"id":306},[47,4813,311],{"id":310},[10,4815,4816],{},[173,4817,318],{"href":316,"rel":4818,"target":178,"title":179},[177],[10,4820,4821],{},[173,4822,325],{"href":323,"rel":4823,"target":178,"title":179},[177],[10,4825,4826],{},[173,4827,332],{"href":330,"rel":4828,"target":178,"title":179},[177],[10,4830,4831],{},[173,4832,339],{"href":337,"rel":4833,"target":178,"title":179},[177],[47,4835,343],{"id":342},[10,4837,4838],{},[173,4839,350],{"href":348,"rel":4840,"target":178,"title":179},[177],[10,4842,4843],{},[173,4844,357],{"href":355,"rel":4845,"target":178,"title":179},[177],[47,4847,361],{"id":360},[10,4849,4850],{},[173,4851,368],{"href":366,"rel":4852,"target":178,"title":179},[177],[10,4854,4855],{},[173,4856,375],{"href":373,"rel":4857,"target":178,"title":179},[177],[10,4859,4860],{},[173,4861,382],{"href":380,"rel":4862,"target":178,"title":179},[177],[47,4864,386],{"id":385},[10,4866,4867],{},[173,4868,393],{"href":391,"rel":4869,"target":178,"title":179},[177],[10,4871,4872],{},[173,4873,400],{"href":398,"rel":4874,"target":178,"title":179},[177],[10,4876,4877],{},[173,4878,407],{"href":405,"rel":4879,"target":178,"title":179},[177],[47,4881,411],{"id":410},[10,4883,4884],{},[173,4885,418],{"href":416,"rel":4886,"target":178,"title":179},[177],[10,4888,4889],{},[173,4890,425],{"href":423,"rel":4891,"target":178,"title":179},[177],[47,4893,429],{"id":428},[10,4895,4896],{},[173,4897,436],{"href":434,"rel":4898,"target":178,"title":179},[177],[10,4900,4901],{},[173,4902,443],{"href":441,"rel":4903,"target":178,"title":179},[177],[47,4905,447],{"id":446},[10,4907,4908],{},[173,4909,454],{"href":452,"rel":4910,"target":178,"title":179},[177],[10,4912,4913],{},[173,4914,461],{"href":459,"rel":4915,"target":178,"title":179},[177],[47,4917,465],{"id":464},[10,4919,4920],{},[173,4921,472],{"href":470,"rel":4922,"target":178,"title":179},[177],[10,4924,4925],{},[173,4926,479],{"href":477,"rel":4927,"target":178,"title":179},[177],[10,4929,4930],{},[173,4931,486],{"href":484,"rel":4932,"target":178,"title":179},[177],[10,4934,4935],{},[173,4936,493],{"href":491,"rel":4937,"target":178,"title":179},[177],[47,4939,497],{"id":496},[10,4941,4942],{},[173,4943,504],{"href":502,"rel":4944,"target":178,"title":179},[177],[10,4946,4947],{},[173,4948,511],{"href":509,"rel":4949,"target":178,"title":179},[177],[47,4951,515],{"id":514},[10,4953,4954],{},[173,4955,522],{"href":520,"rel":4956,"target":178,"title":179},[177],[10,4958,4959],{},[173,4960,529],{"href":527,"rel":4961,"target":178,"title":179},[177],[10,4963,4964],{},[173,4965,536],{"href":534,"rel":4966,"target":178,"title":179},[177],[47,4968,540],{"id":539},[10,4970,4971],{},[173,4972,547],{"href":545,"rel":4973,"target":178,"title":179},[177],[10,4975,4976],{},[173,4977,554],{"href":552,"rel":4978,"target":178,"title":179},[177],[47,4980,558],{"id":557},[10,4982,4983],{},[173,4984,565],{"href":563,"rel":4985,"target":178,"title":179},[177],[10,4987,4988],{},[173,4989,572],{"href":570,"rel":4990,"target":178,"title":179},[177],[47,4992,576],{"id":575},[10,4994,4995],{},[173,4996,583],{"href":581,"rel":4997,"target":178,"title":179},[177],[10,4999,5000],{},[173,5001,590],{"href":588,"rel":5002,"target":178,"title":179},[177],[10,5004,5005],{},[173,5006,597],{"href":595,"rel":5007,"target":178,"title":179},[177],[47,5009,601],{"id":600},[10,5011,5012],{},[173,5013,608],{"href":606,"rel":5014,"target":178,"title":179},[177],[10,5016,5017],{},[173,5018,615],{"href":613,"rel":5019,"target":178,"title":179},[177],[47,5021,619],{"id":618},[10,5023,5024],{},[173,5025,626],{"href":624,"rel":5026,"target":178,"title":179},[177],[10,5028,5029],{},[173,5030,633],{"href":631,"rel":5031,"target":178,"title":179},[177],[47,5033,637],{"id":636},[10,5035,5036],{},[173,5037,644],{"href":642,"rel":5038,"target":178,"title":179},[177],[10,5040,5041],{},[173,5042,651],{"href":649,"rel":5043,"target":178,"title":179},[177],[10,5045,654],{},[10,5047,657],{},{"title":659,"searchDepth":660,"depth":660,"links":5049},[5050,5051,5052,5053],{"id":25,"depth":663,"text":26},{"id":202,"depth":663,"text":203},{"id":291,"depth":663,"text":292},{"id":306,"depth":663,"text":307},{},{"title":5,"description":668},[678,679,680],{"id":5058,"title":5059,"body":5060,"date":5153,"description":5154,"draft":669,"extension":670,"meta":5155,"navigation":672,"ogImage":673,"path":5156,"seo":5157,"stem":5158,"tags":5159,"translationKey":673,"updatedAt":673,"__hash__":5161},"blog_en\u002Fen\u002Fblog\u002Faccessibility-testing.md","Accessibility Testing Should Not Be Confined by Professional Silos",{"type":7,"value":5061,"toc":5151},[5062,5065,5079,5082,5085,5096,5099,5102,5105,5108,5122,5125,5128,5142,5145,5148],[10,5063,5064],{},"In recent years, digital accessibility has evolved from a niche topic for experts into a core consideration for product teams. In the past, accessibility was often synonymous with regulatory compliance, formal audits, or a checklist dusted off only at the very end of a project. But things have changed:",[31,5066,5067,5070,5073,5076],{},[34,5068,5069],{},"Designers are now checking text-to-background contrast directly within Figma.",[34,5071,5072],{},"Frontend engineers are utilizing Lighthouse, axe, and the Accessibility panel in DevTools.",[34,5074,5075],{},"QA engineers are incorporating keyboard navigation into their test cases.",[34,5077,5078],{},"Product Managers are realizing that poor accessibility isn’t just a “bad user experience” — it is an exclusionary barrier that shuts out entire groups of users.",[10,5080,5081],{},"These are significant strides, and the growing awareness is encouraging. I believe it is now time to shift our focus from merely “promoting accessibility” to making accessibility testing something that can be performed easily, anytime, and anywhere.",[10,5083,5084],{},"Current workflows and tools still tend to fragment accessibility responsibilities based on job titles:",[31,5086,5087,5090,5093],{},[34,5088,5089],{},"Designers use Figma to check contrast.",[34,5091,5092],{},"Engineers use DevTools to inspect code.",[34,5094,5095],{},"QA handles keyboard testing.",[10,5097,5098],{},"While this division of labor seems logical, it creates silos. Team members focus only on their specific domains and assume that other aspects of accessibility are “someone else’s job.” This is suboptimal. Accessibility testing should be a shared responsibility — accessible and performable by any team member, regardless of their role. It should not be confined by specific tools or professional titles.",[10,5100,5101],{},"Take a simple example: if a PM wants to verify color contrast, they currently have to master Figma, learn how to navigate DevTools, or rely on external online checkers to manually input hex codes. The barrier to entry remains far too high. Every team member should possess a baseline “accessibility mindset” and understand the fundamental principles that apply throughout the development lifecycle.",[10,5103,5104],{},"I am not suggesting that we blur professional boundaries or replace the need for deep expertise. Comprehensive audits — involving assistive technology testing, nuanced human judgment, regulatory interpretation, and complex interaction patterns — will always require specialists. However, preliminary checks should not be so difficult that only a few people can perform them.",[10,5106,5107],{},"Many issues don’t need to wait for a formal audit to be identified. If we empower team members to take action, we can catch problems much earlier:",[31,5109,5110,5113,5116,5119],{},[34,5111,5112],{},"One click to run a scan.",[34,5114,5115],{},"One click to simulate different visual impairments.",[34,5117,5118],{},"One click to check for basic PDF structural integrity.",[34,5120,5121],{},"One click to flag obvious accessibility risks on the page.",[10,5123,5124],{},"These are small actions, but they enable us to catch issues early in the process. We don’t need everyone to memorize the WCAG or become full-time accessibility consultants. We just need to ensure that when someone suspects a potential issue, they don’t stop simply because it’s “not their job.” They should be able to check, verify, and articulate the problem.",[10,5126,5127],{},"This is how I view the role of Accesserty DevCheck. While its current capabilities are just a starting point, it is designed to be cross-functional. Through our Chrome extension, anyone can perform cross-domain checks:",[31,5129,5130,5133,5136,5139],{},[34,5131,5132],{},"Anyone can run color-blindness simulations.",[34,5134,5135],{},"Anyone can observe usability patterns and scenarios.",[34,5137,5138],{},"Anyone can scan page structures and accessibility rule compliance.",[34,5140,5141],{},"Anyone can inspect PDF structures.",[10,5143,5144],{},"My goal for the future of accessibility tools is to lower the barrier to entry — not to offload professional responsibilities onto everyone, but to provide everyone with the agency to verify issues the moment they are discovered.",[10,5146,5147],{},"If accessibility testing remains the exclusive domain of a few, it inevitably leads to bottlenecks and burnout. But if it is integrated into our daily routines, it can evolve into a genuine culture — one where we don’t wait until a user is blocked or frustrated to care. Because by the time a user encounters a barrier, they have likely already felt excluded, abandoned the flow, or been shut out entirely.",[10,5149,5150],{},"Accessibility awareness is spreading. Now, we need to ensure that the ability to test for it spreads just as widely — making it simple enough for anyone to verify, at any time, with just a few clicks.",{"title":659,"searchDepth":660,"depth":660,"links":5152},[],"2026-05-30","In the past, accessibility was often synonymous with regulatory compliance, formal audits, or a checklist dusted off only at the very end of a project. But things have changed.",{},"\u002Fen\u002Fblog\u002Faccessibility-testing",{"title":5059,"description":5154},"en\u002Fblog\u002Faccessibility-testing",[679,678,5160],"Testing","zV4eL6u-_wTTIiWdGVygDqRjVNVWJgKrrs-uarOPYiI",{"id":5163,"title":5164,"body":5165,"date":5198,"description":5169,"draft":669,"extension":670,"meta":5199,"navigation":672,"ogImage":673,"path":5200,"seo":5201,"stem":5202,"tags":5203,"translationKey":673,"updatedAt":673,"__hash__":5205},"blog_en\u002Fen\u002Fblog\u002F2026-forbes-accessibility.md","Forbes Accessibility 200",{"type":7,"value":5166,"toc":5196},[5167,5170,5173,5176,5179],[10,5168,5169],{},"A few days ago, I came across the Forbes Accessibility 200 list.",[10,5171,5172],{},"I started digging a little deeper and made an expanded version of the list with extra context.",[10,5174,5175],{},"It’s not an official dataset, and it’s definitely not endorsed by Forbes. Just a personal research\u002Freference version because I wanted something easier to browse, check, and learn from.",[10,5177,5178],{},"One thing I really enjoyed seeing: accessibility shows up across so many different fields. Software, education, mobility, entertainment, finance, sports, policy, advocacy, assistive tech, and a bunch of organizations I hadn’t heard of before.",[10,5180,5181,5182,5184,5189,5191],{},"Sharing it here in case anyone else is curious too.",[732,5183],{},[173,5185,5188],{"href":5186,"rel":5187,"target":178,"title":179},"https:\u002F\u002Fneil-lin.github.io\u002F2026-forbes-accessibility-200-list\u002F",[177],"html version",[732,5190],{},[173,5192,5195],{"href":5193,"rel":5194,"target":178,"title":179},"https:\u002F\u002Fgithub.com\u002FNeil-Lin\u002F2026-forbes-accessibility-200-list\u002Fblob\u002Fmain\u002Foutput\u002Fforbes_accessibility_200.md",[177],"Markdown version",{"title":659,"searchDepth":660,"depth":660,"links":5197},[],"2026-05-28",{},"\u002Fen\u002Fblog\u002F2026-forbes-accessibility",{"title":5164,"description":5169},"en\u002Fblog\u002F2026-forbes-accessibility",[678,679,5204],"ForbesAccessibility","rD27X-qAYKMdmqc_4Yjxub94elCOVQgPESyorysrVZ0",{"id":5207,"title":5208,"body":5209,"date":5334,"description":5335,"draft":669,"extension":670,"meta":5336,"navigation":672,"ogImage":673,"path":5337,"seo":5338,"stem":5339,"tags":5340,"translationKey":673,"updatedAt":673,"__hash__":5344},"blog_en\u002Fen\u002Fblog\u002Fa11y-tree-for-who.md","Are the Users of Web Accessibility Changing?",{"type":7,"value":5210,"toc":5328},[5211,5227,5230,5234,5237,5242,5245,5249,5252,5255,5258,5267,5270,5274,5283,5288,5291,5294,5297,5300,5303,5306,5309,5312,5315,5319,5322,5325],[10,5212,5213,5214,5219,5220,5226],{},"Not long ago, Anthropic engineer ",[173,5215,5218],{"href":5216,"rel":5217,"target":178,"title":179},"https:\u002F\u002Fx.com\u002Ftrq212\u002Fstatus\u002F2052809885763747935",[177],"Thariq"," mentioned that, under the assumption that “humans no longer manually edit code,” ",[173,5221,5225],{"href":5222,"rel":5223,"target":178,"title":5224},"https:\u002F\u002Fwww.bnext.com.tw\u002Farticle\u002F90893\u002Fwhen-humans-stop-editing-ai-outputs-why-anthropic-engineers-are-switching-from-markdown-to-html",[177],"Open new Window","HTML is more suitable than Markdown for interacting with AI",".",[10,5228,5229],{},"That made me wonder: if AI is reading a high-quality accessible website, would it be easier for the AI to “understand” the website, and then produce better results when interacting with humans?",[23,5231,5233],{"id":5232},"first-lets-quickly-look-at-the-benefits-of-good-web-accessibility","First, let’s quickly look at the benefits of good web accessibility",[10,5235,5236],{},"Here are a few points from Taiwan’s “Accessible Web Development Service”:",[236,5238,5239],{},[10,5240,5241],{},"Five major benefits of adopting accessibility\nLegal compliance: Meeting domestic legal requirements and protecting the rights of people with disabilities is our responsibility and obligation.\nExpanding service reach: Reaching around 1.2 million people with disabilities, as well as older adults, helps increase service coverage.\nCorporate social responsibility (CSR): Showing a commitment to social inclusion helps improve an organization’s public image and trust.\nBetter user experience: Good accessible design makes websites easier to use and improves satisfaction for all users.\nSEO optimization: Accessible websites with clear structure are more search-engine friendly and can help improve rankings.",[10,5243,5244],{},"The first point is a basic protection. Points 2, 3, and 4 are mostly about “serving people.” But for point 5, I think we should no longer see it only as “SEO optimization.” It should now become AXO optimization.",[23,5246,5248],{"id":5247},"how-does-web-accessibility-help-ai-interact-with-websites-better","How does web accessibility help AI interact with websites better?",[10,5250,5251],{},"When an AI Agent operates a website, what it fears most is not an ugly interface. What it fears is not knowing: “What is this?” “Can I click this?” “What happens after I click it?”",[10,5253,5254],{},"In the past, when we added a proper label to an input field, it was to help screen readers understand what that field was for. But now, AI Agents may also rely on that label to judge: “Is this a search field?” “Should this field contain a name, an email, or an address?”",[10,5256,5257],{},"There are many things humans can understand at a glance, but AI may not.",[10,5259,5260,5261,5266],{},"If accessibility is done well, AI Agents can use the accessibility tree to get cleaner, more concise information that is closer to what they actually need for interaction. LogRocket Blog",[173,5262,5265],{"href":5263,"rel":5264,"target":178,"title":179},"https:\u002F\u002Fblog.logrocket.com\u002Fexploring-agent-browser-ai-agents-web\u002F",[177],"Link"," also mentioned that this helps AI Agents avoid having to guess their way through a messy DOM full of noise.",[10,5268,5269],{},"Take booking tickets as an example. While website A is still forcing the AI to parse a bunch of unclear elements, website B might already allow the AI to complete the booking successfully. For users, website B is faster. For AI service providers, website B also saves more resources.",[23,5271,5273],{"id":5272},"what-changes-will-this-bring","What changes will this bring?",[10,5275,5276,5277,5282],{},"No Hacks mentioned in the article ",[173,5278,5281],{"href":5279,"rel":5280,"target":178,"title":179},"https:\u002F\u002Fnohacks.co\u002Fblog\u002Fhow-ai-agents-see-your-website",[177],"“HOW AI AGENTS SEE YOUR WEBSITE (AND HOW TO BUILD FOR THEM)”",":",[236,5284,5285],{},[10,5286,5287],{},"Last year, before the European Accessibility Act took effect, I half-joked that it would be ironic if the thing that finally got people to care about accessibility was AI agents, not the people accessibility was designed for. That's no longer a joke.",[10,5289,5290],{},"I find this line really interesting, because it points out a new reality: accessibility technology is no longer only serving humans. It is also helping all kinds of “non-visual users” understand websites.",[10,5292,5293],{},"Because of this, the biggest change may be that more companies will start paying attention to accessibility.",[10,5295,5296],{},"But the motivation may shift from “legal compliance” to “business interest.”",[10,5298,5299],{},"If you do not do it, you may fail to serve users who rely on AI Agents to complete tasks. And that means you may lose business opportunities that could have turned into actual conversions.",[10,5301,5302],{},"Compared with SEO, AI Agents may have a more direct impact on revenue.",[10,5304,5305],{},"SEO is more like bringing people to the destination. After that, the website still needs to rely on content, flow, and persuasion to convert users. But AI Agents may directly help users get things done.",[10,5307,5308],{},"This also leads to a second impact: website analytics may change dramatically. As AI Agent usage grows, familiar metrics like “click-through rate,” “time on page,” and “conversion rate” may all need to be redefined.",[10,5310,5311],{},"This shift in motivation could theoretically create healthy competition, and it may also improve the overall accessibility environment on the web.",[10,5313,5314],{},"After all, the first step is still to increase the number of websites that actually meet accessibility standards.",[23,5316,5318],{"id":5317},"so-are-the-users-of-web-accessibility-really-changing","So, are the users of web accessibility really changing?",[10,5320,5321],{},"I don’t think they are changing. I think the scope is expanding, just like what happened with SEO in the past.",[10,5323,5324],{},"Although AI is now bringing a new wave of attention to accessibility, the focus will eventually come back to humans. A website is not just code, and it is not just an accessibility tree. It also includes flow design, content understanding, emotional experience, trust-building, and the real experience users have at every step.",[10,5326,5327],{},"So yes, AI may encourage more people to take accessibility seriously again. But the true core of accessibility is still helping people use websites more smoothly and more easily.",{"title":659,"searchDepth":660,"depth":660,"links":5329},[5330,5331,5332,5333],{"id":5232,"depth":663,"text":5233},{"id":5247,"depth":663,"text":5248},{"id":5272,"depth":663,"text":5273},{"id":5317,"depth":663,"text":5318},"2026-05-13","Not long ago, Anthropic engineer Thariq mentioned that, under the assumption that “humans no longer manually edit code,” HTML is more suitable than Markdown for interacting with AI.",{},"\u002Fen\u002Fblog\u002Fa11y-tree-for-who",{"title":5208,"description":5335},"en\u002Fblog\u002Fa11y-tree-for-who",[5341,5342,678,679,5343,1742],"Anthropic","SocialResponsibility","AIAgent","qjbSfvHgdAu0Lfos0a5OclWYlT6oOCW_C0p7rYe4xFI",{"id":5346,"title":1708,"body":5347,"date":5514,"description":5515,"draft":669,"extension":670,"meta":5516,"navigation":672,"ogImage":673,"path":5517,"seo":5518,"stem":5519,"tags":5520,"translationKey":673,"updatedAt":673,"__hash__":5522},"blog_en\u002Fen\u002Fblog\u002Fai-sugar.md",{"type":7,"value":5348,"toc":5507},[5349,5353,5356,5359,5362,5365,5368,5372,5375,5378,5381,5384,5387,5390,5393,5396,5399,5402,5405,5408,5411,5414,5417,5420,5423,5426,5430,5433,5436,5439,5442,5445,5448,5451,5454,5458,5461,5464,5467,5470,5473,5476,5479,5482,5485,5488,5491,5494,5497,5499],[23,5350,5352],{"id":5351},"introduction","Introduction",[10,5354,5355],{},"A few days ago, Gemini’s automated scheduling system pushed me a daily accessibility-related article. The article described a service whose core technology allegedly uses AI to add web accessibility features during frontend rendering, while also offering personalized shortcut settings for users to adjust the website experience.",[10,5357,5358],{},"At first glance, this sounded exciting.",[10,5360,5361],{},"“AI that can add accessibility techniques during web rendering?”",[10,5363,5364],{},"I thought perhaps some new technology had finally been invented and applied in a practical way.",[10,5366,5367],{},"But after looking into it more carefully, my excitement quickly turned into disappointment — and eventually, anger.",[23,5369,5371],{"id":5370},"from-excitement-to-deep-disappointment","From Excitement to Deep Disappointment",[10,5373,5374],{},"The article that Gemini collected turned out to be, in essence, a sponsored article.",[10,5376,5377],{},"The service mentioned in the article talked about accessibility widgets — a type of solution that has already been widely questioned and has not been proven to meaningfully solve accessibility problems on the web.",[10,5379,5380],{},"Then the company explained how its technology was supposedly better than traditional widget-based solutions.",[10,5382,5383],{},"But in reality, what they were doing was simply adding accessibility-related DOM enhancements during page rendering. As for the “personalized shortcut settings” they provided, that part was basically no different from other accessibility widgets. The tools may vary, but the nature of the solution is largely the same.",[10,5385,5386],{},"How do I know?",[10,5388,5389],{},"Because I actually went to the company’s official website and also tested some of the e-commerce websites they claimed to support.",[10,5391,5392],{},"I opened every automated testing tool I had, ran the tests, and then followed up with my own manual accessibility review.",[10,5394,5395],{},"Here are some of the problems I found:",[10,5397,5398],{},"The service claimed that its AI could generate image alt descriptions based on images. But in practice, the descriptions were very generic — something like “a woman wearing a dress.” That kind of description provides very limited value.",[10,5400,5401],{},"There is a well-known accessibility principle: No ARIA is better than bad ARIA. But this technology seemed to add ARIA attributes almost everywhere it could, without considering whether they were necessary. For example, even buttons that already had visible text descriptions were still given additional ARIA labels.",[10,5403,5404],{},"The heading structure was not used in a proper order.",[10,5406,5407],{},"Color contrast still failed to meet WCAG 2.2 AA standards, not to mention the more advanced color-related expectations that may come with WCAG 3.0 in the future.",[10,5409,5410],{},"As for the widget part, it followed the same fundamental problems as many other similar products, so I will not go too deeply into that here.",[10,5412,5413],{},"In other words, even the most common accessibility issues seen across the web were not properly fixed. The site could not even pass basic automated checks like Lighthouse and axe-core. At that point, there was no need to even move into the deeper manual testing stage.",[10,5415,5416],{},"The problems on the company’s own website were already concerning. But when I tested the real customer websites in the domain they claimed to have specifically trained their technology for, the results were even more frustrating.",[10,5418,5419],{},"In some cases, even basic keyboard focus indicators were missing.",[10,5421,5422],{},"At that moment, I truly felt deceived.",[10,5424,5425],{},"I was genuinely angry.",[23,5427,5429],{"id":5428},"from-anger-to-gratitude","From Anger to Gratitude",[10,5431,5432],{},"But after the anger passed, I started to see the situation from another angle.",[10,5434,5435],{},"At least this company tried something new.",[10,5437,5438],{},"Throughout history, progress has often been built on failure. Without failed attempts, there is no foundation for future success.",[10,5440,5441],{},"With that in mind, I am still grateful that they took concrete action to implement their idea and launched a real product used by real customers.",[10,5443,5444],{},"Yes, the product has some effect.",[10,5446,5447],{},"But it also introduces more problems.",[10,5449,5450],{},"Still, they took a new step. Maybe this approach will improve over time.",[10,5452,5453],{},"After all, humans have always wanted to save effort while producing more. That desire has led to many great inventions.",[23,5455,5457],{"id":5456},"conclusion","Conclusion",[10,5459,5460],{},"AI is not omnipotent.",[10,5462,5463],{},"And AI that has not been properly trained is even more dangerous when applied carelessly.",[10,5465,5466],{},"Behind the sugar coating of AI, I still believe that products like this should go through complete testing before being released.",[10,5468,5469],{},"Or perhaps AI should be used more carefully in the development process itself — closer to the source of the website — rather than being applied as a patch after the fact.",[10,5471,5472],{},"Even better, accessibility should be planned from the design stage, where standards, structure, interaction, and content can be considered from the beginning.",[10,5474,5475],{},"I once experimented with adding a widget to a website. But instead of filling it with a bunch of setting buttons, I made it an AI chat interface. Through conversation, users could change different aspects of the website’s presentation.",[10,5477,5478],{},"The experiment worked.",[10,5480,5481],{},"But the cost was extremely high.",[10,5483,5484],{},"And another issue appeared: users started focusing on the chat window itself, which created new accessibility and usability problems.",[10,5486,5487],{},"So yes, AI may be useful.",[10,5489,5490],{},"But AI should not become a beautiful wrapper around an incomplete solution.",[10,5492,5493],{},"Accessibility is not something that can simply be sprinkled onto a website after it is built.",[10,5495,5496],{},"And it should never be treated as a marketing feature covered in AI sugar.",[23,5498,1700],{"id":1699},[31,5500,5501],{},[34,5502,5503],{},[173,5504,5506],{"href":5505},"\u002Fen\u002Fblog\u002Fai-reliable-researcher\u002F","AI Is Great at Research — But Is It a Reliable Researcher?",{"title":659,"searchDepth":660,"depth":660,"links":5508},[5509,5510,5511,5512,5513],{"id":5351,"depth":663,"text":5352},{"id":5370,"depth":663,"text":5371},{"id":5428,"depth":663,"text":5429},{"id":5456,"depth":663,"text":5457},{"id":1699,"depth":663,"text":1700},"2026-05-08","When AI promises to fix web accessibility at runtime, but ends up repeating the same old widget problem.",{},"\u002Fen\u002Fblog\u002Fai-sugar",{"title":1708,"description":5515},"en\u002Fblog\u002Fai-sugar",[1740,679,678,5521],"Widget","R7I8W2WUDg9829hTvPZafXnHjZpGcBIJ_sG_6ZFwABk",{"id":5524,"title":5525,"body":5526,"date":5565,"description":5566,"draft":669,"extension":670,"meta":5567,"navigation":672,"ogImage":673,"path":5568,"seo":5569,"stem":5570,"tags":5571,"translationKey":673,"updatedAt":673,"__hash__":5573},"blog_en\u002Fen\u002Fblog\u002F2026-04-a11y-opinion.md","Reflections on Digital Accessibility (April 2026)",{"type":7,"value":5527,"toc":5563},[5528,5531,5540,5543,5546,5555,5560],[10,5529,5530],{},"Watching the current wave of AI tools, the shifts in digital accessibility, and the growth of job roles in this field, I see AI-powered A11y auditing and Agent Skills booming. While I’ve personally benefited from these, I’m left with a deeper sense of uncertainty: To what extent can AI truly help digital accessibility become universal? Or more importantly, how can I make AI do it?",[10,5532,5533,5534,5539],{},"I previously built ",[173,5535,5538],{"href":5536,"rel":5537,"target":178,"title":179},"https:\u002F\u002Faccesserty.com",[177],"Accesserty",", a side project designed as an ecosystem connecting everything from user interaction to enterprise production, auditing, and analytics. The goal was to make accessibility profitable for businesses so they would fully embrace it. However, the reality is that many steps still require high costs, and sustainable maintenance remains a massive challenge.",[10,5541,5542],{},"AI still hasn’t made these processes “easy,” especially when it comes to manual auditing, where its help is still limited. To be honest, I feel a bit frustrated. My previous framework was based on current development workflows — essentially a “cost-reduction” approach. Perhaps I need a disruptive innovation to break through this “AI is great but limited” deadlock.",[10,5544,5545],{},"I’ve also noticed a trend: while designers and influencers in my environment are becoming more aware of digital accessibility, most are still just solving common issues. Their understanding of the broader A11y knowledge base is still shallow. The industry is stuck in a “get-by” phase — using tools just to pass compliance. There’s no big shift because accessibility hasn’t yet proven to bring clear benefits to businesses. Most are driven by the “fear of being fined” or by ESG requirements.",[10,5547,5548,5549,5554],{},"This quote from a recent article on ",[173,5550,5553],{"href":5551,"rel":5552,"target":178,"title":179},"https:\u002F\u002Fwww.a11yjobs.com\u002F",[177],"a11yjobs"," hits home:",[236,5556,5557],{},[10,5558,5559],{},"\"Much of the hiring activity is concentrated in a narrow band of roles, driven by compliance pressures rather than genuine organizational buy-in. Companies are hiring because they have to — not always because they want to build lasting accessibility practices.\"",[10,5561,5562],{},"Both approaches are “doing accessibility,” but the starting point changes everything. This will be the focus of my research in the next stage.",{"title":659,"searchDepth":660,"depth":660,"links":5564},[],"2026-04-30","Some thoughts on Digital Accessibility and AI.",{},"\u002Fen\u002Fblog\u002F2026-04-a11y-opinion",{"title":5525,"description":5566},"en\u002Fblog\u002F2026-04-a11y-opinion",[679,678,5553,5572],"WebDesign","Vz25GJ6HbXpE86nks9ivJAglkrxAqwADhduDWMUbYqc",{"id":5575,"title":5576,"body":5577,"date":5805,"description":5586,"draft":669,"extension":670,"meta":5806,"navigation":672,"ogImage":673,"path":5807,"seo":5808,"stem":5809,"tags":5810,"translationKey":673,"updatedAt":5813,"__hash__":5814},"blog_en\u002Fen\u002Fblog\u002Fa11y-dev-tool.md","Accesserty DevCheck — Simulate and Detect Accessibility Challenges Before You Ship",{"type":7,"value":5578,"toc":5798},[5579,5582,5584,5587,5590,5593,5610,5613,5616,5620,5623,5626,5643,5646,5650,5653,5694,5698,5726,5730,5747,5751,5754,5757,5760,5771,5774,5777,5792,5795],[10,5580,5581],{},"2026\u002F06\u002F22 update：Added image alt suggestion by Gemini。",[10,5583,654],{},[10,5585,5586],{},"Stop waiting for complaints. Start feeling what your users feel — directly inside your dev workflow.",[10,5588,5589],{},"When we talk about accessibility, most people think of checklists, screen readers, or legal compliance.",[10,5591,5592],{},"But real accessibility issues don’t always show up in audits.\nThey show up when:",[31,5594,5595,5598,5601,5604,5607],{},[34,5596,5597],{},"A user can’t tell where the content begins",[34,5599,5600],{},"A button is too small for touch",[34,5602,5603],{},"Text is blurry for someone with poor vision",[34,5605,5606],{},"A flashing banner causes discomfort",[34,5608,5609],{},"A layout breaks when text size increases",[10,5611,5612],{},"These problems often go unnoticed — until it’s too late.",[10,5614,5615],{},"That’s why I built Accesserty DevCheck:\nA developer tool that helps you simulate real-world accessibility challenges and run basic tests, all from your browser.",[23,5617,5619],{"id":5618},"why-simulation-matters","Why Simulation Matters",[10,5621,5622],{},"Automated tools like Lighthouse or axe-core can check for missing alt text, bad heading structure, or missing ARIA labels.",[10,5624,5625],{},"But they can’t tell you what it’s like to actually use your product if:",[31,5627,5628,5631,5634,5637,5640],{},[34,5629,5630],{},"You have color blindness",[34,5632,5633],{},"You experience visual blur or cataracts",[34,5635,5636],{},"You can’t see part of the screen",[34,5638,5639],{},"You use only one finger on a touchscreen",[34,5641,5642],{},"You rely on large text or dark modes",[10,5644,5645],{},"That’s where DevCheck’s simulation layer comes in.",[23,5647,5649],{"id":5648},"what-devcheck-offers","What DevCheck Offers",[10,5651,5652],{},"These tools let you experience a website the way many users do — with visual or interaction limitations:",[31,5654,5655,5658,5661,5664,5667,5670,5673,5676,5679,5682,5685,5688,5691],{},[34,5656,5657],{},"Color Blindness Simulation\n(Red-green, blue-yellow, total monochrome, and more)",[34,5659,5660],{},"Visual Blur Simulation",[34,5662,5663],{},"Myopia (full blur)",[34,5665,5666],{},"Presbyopia (center blur)",[34,5668,5669],{},"Cataracts (glare + fog)",[34,5671,5672],{},"Screen Occlusion",[34,5674,5675],{},"Simulate partial visual field loss (common with eye diseases)",[34,5677,5678],{},"Large Text \u002F Increased Spacing",[34,5680,5681],{},"Helps test responsive behavior under assistive settings",[34,5683,5684],{},"Color Inversion Mode",[34,5686,5687],{},"Simulate forced dark mode effects",[34,5689,5690],{},"Finger Tap Zone Simulation",[34,5692,5693],{},"Shows a 64px circle around your cursor to test if small clickable areas are accessible",[23,5695,5697],{"id":5696},"detection-tools-debug-mode","Detection Tools (Debug Mode)",[31,5699,5700,5703,5706],{},[34,5701,5702],{},"axe-core audit",[34,5704,5705],{},"Run in-browser checks for common violations",[34,5707,5708,5709],{},"(Coming Soon)\n",[31,5710,5711,5714,5717,5720,5723],{},[34,5712,5713],{},"Image alt text analysis",[34,5715,5716],{},"Heading structure visualizer",[34,5718,5719],{},"Landmark checks",[34,5721,5722],{},"SEO metadata detection",[34,5724,5725],{},"ARIA misuse warnings",[23,5727,5729],{"id":5728},"who-is-it-for","Who is it for?",[31,5731,5732,5735,5738,5741,5744],{},[34,5733,5734],{},"Frontend developers — Test as you build",[34,5736,5737],{},"Designers — Validate layouts, spacing, and color choices",[34,5739,5740],{},"PMs — Simulate user pain points before demo day",[34,5742,5743],{},"Testers — Reproduce visual experience issues",[34,5745,5746],{},"Customer support — Understand user complaints better",[23,5748,5750],{"id":5749},"its-not-about-compliance-its-about-empathy","It’s not about compliance — it’s about empathy",[10,5752,5753],{},"Most users won’t report accessibility issues.",[10,5755,5756],{},"Why?",[10,5758,5759],{},"Because:",[31,5761,5762,5765,5768],{},[34,5763,5764],{},"They don’t know how",[34,5766,5767],{},"They don’t know who to tell",[34,5769,5770],{},"They don’t believe anything will change",[10,5772,5773],{},"DevCheck gives you a way to feel what they feel — before they bounce, quit, or struggle in silence.",[10,5775,5776],{},"Try Accesserty DevCheck Now:",[31,5778,5779,5785],{},[34,5780,5781],{},[173,5782,5352],{"href":5783,"rel":5784,"target":178,"title":179},"https:\u002F\u002Faccesserty.com\u002Fdevcheck",[177],[34,5786,5787],{},[173,5788,5791],{"href":5789,"rel":5790,"target":178,"title":179},"https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Faccesserty-devcheck\u002Fompbhahmipenipgiiiehbkiibkonoeec",[177],"Chrome Extension",[10,5793,5794],{},"You don’t have to be an accessibility expert.",[10,5796,5797],{},"You just need the curiosity to simulate, and the willingness to adjust before it hurts.",{"title":659,"searchDepth":660,"depth":660,"links":5799},[5800,5801,5802,5803,5804],{"id":5618,"depth":663,"text":5619},{"id":5648,"depth":663,"text":5649},{"id":5696,"depth":663,"text":5697},{"id":5728,"depth":663,"text":5729},{"id":5749,"depth":663,"text":5750},"2025-05-31",{},"\u002Fen\u002Fblog\u002Fa11y-dev-tool",{"title":5576,"description":5586},"en\u002Fblog\u002Fa11y-dev-tool",[5811,679,678,5812],"ChromeExtension","DevTool","2026-06-22","9ebSB5oBE1IVi29IEoukEPZqLdcEOMlZoNKN2BMepDU",{"id":5816,"title":5817,"body":5818,"date":5992,"description":5993,"draft":669,"extension":670,"meta":5994,"navigation":672,"ogImage":673,"path":5995,"seo":5996,"stem":5997,"tags":5998,"translationKey":673,"updatedAt":5813,"__hash__":6000},"blog_en\u002Fen\u002Fblog\u002Fsearch-good-website.md","The Invisible Experience Gap  —  Why It’s So Hard to Find Truly Usable Websites",{"type":7,"value":5819,"toc":5984},[5820,5823,5825,5829,5849,5853,5856,5870,5873,5877,5880,5885,5888,5893,5896,5905,5909,5912,5915,5923,5926,5929,5933,5936,5939,5950,5953,5956,5960,5963,5968,5971,5974,5977],[10,5821,5822],{},"2026\u002F06\u002F22 update：now remove Google Lighthouse.",[10,5824,654],{},[23,5826,5828],{"id":5827},"_1-a-familiar-frustrating-scene","1. A familiar, frustrating scene",[236,5830,5831],{},[10,5832,5833,5834,5836,5837,5839,5840,5842,5843,5845,5846,5848],{},"You open Google, type in your query, and ten blue links appear.",[732,5835],{},"\nYou click the first one — it’s full of ads, so you close it.",[732,5838],{},"\nThe second — tons of images, but no useful content.",[732,5841],{},"\nThe third — you press the Tab key a few times, and the cursor disappears somewhere…",[732,5844],{},"\nEventually, you wonder:",[732,5847],{},"\nAm I just being too picky?",[23,5850,5852],{"id":5851},"_2-the-problem-isnt-too-much-information-its-that-we-cant-see-usability","2. The problem isn’t “too much information” — it’s that we can’t see usability",[10,5854,5855],{},"Most modern search engines rank results based on SEO, page speed, and content density. But what actually makes a site usable is deeply practical — and often subjective:",[31,5857,5858,5861,5864,5867],{},[34,5859,5860],{},"Can you navigate with just a keyboard?",[34,5862,5863],{},"Do the headings make sense?",[34,5865,5866],{},"Are ads covering the main content?",[34,5868,5869],{},"Is the color contrast strong enough to read comfortably?",[10,5871,5872],{},"These aren’t things we can evaluate from a link preview.\nWe only find out after clicking — by spending time, patience, and emotional energy.",[23,5874,5876],{"id":5875},"_3-what-i-wanted-to-change-make-experience-visible-before-you-click","3. What I wanted to change: Make experience visible before you click",[10,5878,5879],{},"That’s when I started wondering:",[236,5881,5882],{},[10,5883,5884],{},"What if you could see a website’s accessibility state right at the moment of search?",[10,5886,5887],{},"Not to assign ratings.\nNot to label or shame anyone.\nBut to simply ask:",[236,5889,5890],{},[10,5891,5892],{},"“Has this website made an effort to be comfortable and usable?”",[10,5894,5895],{},"I’m not trying to build a new search engine.\nI just want to make user experience visible, at a glance.",[10,5897,5898,5899,5904],{},"That’s where the idea for ",[173,5900,5903],{"href":5901,"rel":5902,"target":178,"title":179},"https:\u002F\u002Faccesserty.com\u002Fsignal\u002F",[177],"Accesserty Signal"," began.",[23,5906,5908],{"id":5907},"what-is-signal","What is Signal?",[10,5910,5911],{},"It’s not a rating — it’s a helper for decision-making",[10,5913,5914],{},"Accesserty Signal is a lightweight Chrome extension that adds a simple badge to each Google search result:",[157,5916,5917],{},[10,5918,5919],{},[162,5920],{"alt":5921,"src":5922},"Google search result list: Lighthouse Score","\u002Fimages\u002Fblog\u002F44.png",[10,5924,5925],{},"This number comes from Lighthouse, a widely used accessibility audit tool.\nIt’s explainable, standardized, and easy to compare.",[10,5927,5928],{},"It’s not a judgment.\nIt’s not a curated “good websites only” list.\nIt’s just a small clue to help users choose where to click.",[23,5930,5932],{"id":5931},"why-i-refused-to-make-it-a-rating-system","Why I refused to make it a rating system",[10,5934,5935],{},"Because I didn’t want this to become another “score game.”",[10,5937,5938],{},"Too many platforms reduce experience to 1–5 stars, and it always ends up with:",[31,5940,5941,5944,5947],{},[34,5942,5943],{},"Manipulated ratings (via marketing bots)",[34,5945,5946],{},"Misleading reviews (1-star due to a bad mood, not the product)",[34,5948,5949],{},"Used to pressure creators (“fix this or we’ll expose you”)",[10,5951,5952],{},"I wanted to avoid all of that.",[10,5954,5955],{},"The accessibility score in Accesserty Signal is just a neutral indicator.\nReal improvement still depends on whether the website wants to improve.",[23,5957,5959],{"id":5958},"its-just-the-beginning-but-it-adds-a-little-transparency","It’s just the beginning — but it adds a little transparency",[10,5961,5962],{},"I know Accesserty Signal won’t change the web overnight.\nBut it does one small thing:",[236,5964,5965],{},[10,5966,5967],{},"It makes experience visible — not something users have to discover the hard way.",[10,5969,5970],{},"If you’ve ever hesitated before clicking a link, unsure if the site would be a pain…",[10,5972,5973],{},"If you’ve ever closed a site because it felt too messy or hostile…",[10,5975,5976],{},"Then you’ve already felt the invisibility of user experience.",[10,5978,5979,5983],{},[173,5980,5538],{"href":5981,"rel":5982,"target":178,"title":179},"https:\u002F\u002Faccesserty.com\u002F",[177]," is my way of trying to make that gap more visible, understandable, and improvable — one badge at a time.",{"title":659,"searchDepth":660,"depth":660,"links":5985},[5986,5987,5988,5989,5990,5991],{"id":5827,"depth":663,"text":5828},{"id":5851,"depth":663,"text":5852},{"id":5875,"depth":663,"text":5876},{"id":5907,"depth":663,"text":5908},{"id":5931,"depth":663,"text":5932},{"id":5958,"depth":663,"text":5959},"2025-05-29","Why I decided to display accessibility signals in search results.",{},"\u002Fen\u002Fblog\u002Fsearch-good-website",{"title":5817,"description":5993},"en\u002Fblog\u002Fsearch-good-website",[5811,679,678,5999],"Usability","3RumyZrq5R0cNNOs7xcCuxYl_e_ZOcSTbzXgx8J_OuI",{"id":6002,"title":6003,"body":6004,"date":6276,"description":6277,"draft":669,"extension":670,"meta":6278,"navigation":672,"ogImage":673,"path":6279,"seo":6280,"stem":6281,"tags":6282,"translationKey":673,"updatedAt":673,"__hash__":6285},"blog_en\u002Fen\u002Fblog\u002Fbuilding-accesserty-an-accessibility-experience-from-search-to-development.md","Building Accesserty — An Accessibility Experience from Search to Development",{"type":7,"value":6005,"toc":6266},[6006,6009,6013,6016,6019,6022,6026,6030,6033,6036,6039,6042,6046,6049,6052,6063,6066,6072,6075,6078,6081,6084,6087,6090,6094,6097,6104,6107,6113,6116,6120,6123,6126,6129,6132,6135,6148,6151,6155,6225,6229,6232,6240,6244,6247,6250,6253,6257],[10,6007,6008],{},"Today, I’d like to share the story behind Accesserty, a small product ecosystem I built in about a month, aimed at improving the accessible web experience. From the moment users search to the moment developers build, I wanted to offer a calm, practical set of tools to make accessibility visible, understandable, and actionable.",[23,6010,6012],{"id":6011},"origin-curiosity-about-chrome-extensions","Origin: Curiosity about Chrome Extensions",[10,6014,6015],{},"Back in 2023, I created my first Chrome extension — Report Website Issues — simply out of curiosity.",[10,6017,6018],{},"Now in 2025, with the rise of large language models (LLMs), I began thinking about how AI might help me build tools that address real-world accessibility challenges.",[10,6020,6021],{},"I experimented with assigning LLMs different “roles” — product manager, frontend dev, accessibility analyst — and used them to speed up system design and implementation.",[23,6023,6025],{"id":6024},"identifying-the-problems","Identifying the Problems",[47,6027,6029],{"id":6028},"_1-after-searching-users-still-dont-know-which-link-to-click","1. After searching, users still don’t know which link to click",[10,6031,6032],{},"Search engines consider SEO, performance, and content, but that doesn’t mean the top results are easy to use — especially for people who rely on keyboard navigation or screen readers.",[10,6034,6035],{},"Sites may appear technically sound but be visually cluttered, hard to navigate, or inaccessible by design.\nSo I started wondering:",[10,6037,6038],{},"What if I could see how accessible a site is — right from the search result list?",[10,6040,6041],{},"It would save time, reduce frustration, and help everyone make more informed choices.",[47,6043,6045],{"id":6044},"_2-users-often-have-no-way-to-report-issues","2. Users often have no way to report issues",[10,6047,6048],{},"Even if a user encounters a serious accessibility problem, it’s often unclear how to report it — or if it will even be taken seriously.",[10,6050,6051],{},"Worse, communication gaps happen. Like in a case I mentioned in an earlier post:",[236,6053,6054],{},[10,6055,6056,6057,6059,6060,6062],{},"A user says: “I can’t browse your site using the keyboard.”",[732,6058],{},"\nA support rep replies: “It works fine for me — maybe try again?”",[732,6061],{},"\nBut they’re talking about different things. One refers to keyboard focus logic; the other is just pressing the down arrow key. They both get frustrated.",[10,6064,6065],{},"So I realized there needs to be a “bridge” — someone or something that helps users explain issues clearly and helps developers receive usable feedback.\nRight now, LLMs might help with summarization, but the cost and accuracy are still limiting.",[10,6067,6068,6071],{},[1506,6069,6070],{},"3. Is accessibility really expensive for developers?","\nWith recent EU regulations, many UI frameworks now include more accessible components — that’s progress.\nBut passing machine audits isn’t enough.",[10,6073,6074],{},"Compliance ≠ usability.",[10,6076,6077],{},"Take text, for instance. A machine can check if it’s there —\nbut only a human can tell if it actually describes the image meaningfully in context.alt",[10,6079,6080],{},"Even if LLMs could generate decent descriptions, that still involves API costs, image parsing, and prompt design — not to mention hallucination risks.",[10,6082,6083],{},"That led me to a fundamental insight:",[10,6085,6086],{},"The earlier you address accessibility, the lower the cost.",[10,6088,6089],{},"From planning to design to engineering, everyone needs to be aligned early.\nThis diagram sums it up well:",[23,6091,6093],{"id":6092},"solutions-simulate-detect-report","Solutions: Simulate, Detect, Report",[10,6095,6096],{},"Based on these observations, I created a journey map to visualize the pain points across users, developers, and site owners.",[6098,6099],"embed",{"height":6100,"src":6101,"type":6102,"width":6103},"480px","https:\u002F\u002Fwhimsical.com\u002Fembed\u002FNDhUK17ebjwRtaH4kLoMU4","application\u002Fpdf","100%",[10,6105,6106],{},"I divided the process into two phases:",[10,6108,6109,6110,6112],{},"Prevention — Help build accessibility in early",[732,6111],{},"\nRemediation — Identify and fix real-world issues through feedback",[10,6114,6115],{},"The goal: a sustainable feedback loop where everyone benefits.",[23,6117,6119],{"id":6118},"building-the-accesserty-brand","Building the Accesserty Brand",[10,6121,6122],{},"Many a11y tools try to scare developers into action — with stories of lawsuits or million-dollar fines.",[10,6124,6125],{},"I didn’t want to do that.\nInstead, I wanted to design something that felt rational, respectful, and constructive.",[10,6127,6128],{},"So with help from my “product manager” (aka ChatGPT 😎), I defined Accesserty’s brand principles:",[10,6130,6131],{},"We aim to be…Calm, clear, transparent, inclusive",[10,6133,6134],{},"And we avoid…Fear-driven messaging, tokenism, accessibility as an afterthought",[157,6136,6137,6143],{},[10,6138,6139],{},[162,6140],{"alt":6141,"src":6142},"ChatGPT UI: project folder and chat","\u002Fimages\u002Fblog\u002F1.webp",[167,6144,6145],{},[10,6146,6147],{},"I even used ChatGPT’s new project folder mode to keep a shared background doc, flowcharts, and multiple conversations — as if working with a real team.",[10,6149,6150],{},"With the structure aligned, I started coding the actual tools — one by one — with the help of Chrome Extension, Web Components, AppSheet, and some Vibe Coding.",[23,6152,6154],{"id":6153},"the-accesserty-ecosystem","The Accesserty Ecosystem",[31,6156,6157,6173,6187,6208],{},[34,6158,6159,6160,6162,6167,6169],{},"Accesserty Signal\nSee accessibility status directly in Google Search",[732,6161],{},[173,6163,5352],{"href":6164,"rel":6165,"target":178,"title":6166},"http:\u002F\u002Faccesserty.com\u002Fen\u002Fsignal",[177],"Open New Window",[732,6168],{},[173,6170,5791],{"href":6171,"rel":6172,"target":178,"title":6166},"https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Faccesserty-signal\u002Fjabgpbgdmhdmibhogmcjfinnkcngcelc",[177],[34,6174,6175,6176,6178,6182,6184],{},"Accesserty DevCheck\nSimulate vision impairments, detect violations (e.g., color blindness, alt text, heading issues)",[732,6177],{},[173,6179,5352],{"href":6180,"rel":6181,"target":178,"title":6166},"http:\u002F\u002Faccesserty.com\u002Fen\u002Fdevcheck",[177],[732,6183],{},[173,6185,5791],{"href":5789,"rel":6186,"target":178,"title":6166},[177],[34,6188,6189,6190,6194,6196,6201,6203],{},"Accesserty UI Kit\nBuild with accessible Web Components from day one\n",[173,6191,5352],{"href":6192,"rel":6193,"target":178,"title":6166},"https:\u002F\u002Faccesserty.com\u002Fen\u002Fuikit",[177],[732,6195],{},[173,6197,6200],{"href":6198,"rel":6199,"target":178,"title":6166},"https:\u002F\u002Fgithub.com\u002FAccesserty\u002FUI-Kit",[177],"Github",[732,6202],{},[173,6204,6207],{"href":6205,"rel":6206,"target":178,"title":6166},"https:\u002F\u002Faccesserty.com\u002Fen\u002Fuikit\u002Fplayground",[177],"Playground",[34,6209,6210,6211,6213,6218,6219,6221,6222,6224],{},"Accesserty Pulse.",[732,6212],{},[173,6214,6217],{"href":6215,"rel":6216,"target":178,"title":6166},"https:\u002F\u002Faccesserty.com\u002Fen\u002Fpulse",[177],"Pulse"," — A service dedicated to capturing user frustration.",[732,6220],{},"\nIntroduction",[732,6223],{},"\nBuilt solo, with AI as a thought partner, and designed for low-maintenance sustainability.",[23,6226,6228],{"id":6227},"launched-on-gaad","Launched on GAAD 🎉",[10,6230,6231],{},"I chose to launch Accesserty on Global Accessibility Awareness Day (GAAD) —\nthe third Thursday of May, every year.",[10,6233,6234,6235],{},"You can find it on ",[173,6236,6239],{"href":6237,"rel":6238,"target":178,"title":6166},"https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Freport-website-issues?launch=accesserty",[177],"Product Hunt",[23,6241,6243],{"id":6242},"my-hope-is-that-this-helps-show","My hope is that this helps show:",[10,6245,6246],{},"You don’t need a big team or budget to make the web more accessible.\nWith the right mindset and tools, transparency and improvement can happen — at scale, and with care.",[10,6248,6249],{},"If you’ve ever felt unsure which site to trust when searching, or if you’ve ever hit an accessibility wall and had nowhere to report it —\nAccesserty was built for you.",[10,6251,6252],{},"I’d love to hear your thoughts, feedback, or even ideas for collaboration.",[23,6254,6256],{"id":6255},"related-links","Related Links",[31,6258,6259],{},[34,6260,6261],{},[173,6262,6265],{"href":6263,"rel":6264,"target":178,"title":6166},"https:\u002F\u002Faccessibility.day",[177],"GAAD Website",{"title":659,"searchDepth":660,"depth":660,"links":6267},[6268,6269,6270,6271,6272,6273,6274,6275],{"id":6011,"depth":663,"text":6012},{"id":6024,"depth":663,"text":6025},{"id":6092,"depth":663,"text":6093},{"id":6118,"depth":663,"text":6119},{"id":6153,"depth":663,"text":6154},{"id":6227,"depth":663,"text":6228},{"id":6242,"depth":663,"text":6243},{"id":6255,"depth":663,"text":6256},"2025-05-23","A small product ecosystem I built in about a month, aimed at improving the accessible web experience.",{},"\u002Fen\u002Fblog\u002Fbuilding-accesserty-an-accessibility-experience-from-search-to-development",{"title":6003,"description":6277},"en\u002Fblog\u002Fbuilding-accesserty-an-accessibility-experience-from-search-to-development",[678,5791,6283,6284],"ProductHunt","Solo Founder","wTUjNqtnxOWObgU7t01VFkwf30wtZ8vGImj8U-W7g0k",1788091801916]