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