<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Codeslog</title>
    <link>https://www.codeslog.com/en/posts/</link>
    <description>Recent content in Posts on Codeslog</description>
    <image>
      <title>Codeslog</title>
      <url>https://www.codeslog.com/images/default-cover.png?v=20260114T1436</url>
      <link>https://www.codeslog.com/images/default-cover.png?v=20260114T1436</link>
    </image>
    <generator>Hugo -- 0.168.0</generator>
    <language>en-US</language>
    <lastBuildDate>Sat, 24 Oct 2026 02:02:00 +0900</lastBuildDate>
    <atom:link href="https://www.codeslog.com/en/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Accessible Modals: From dialog showModal() to Focus Traps</title>
      <link>https://www.codeslog.com/en/posts/modal-dialog-implementation/</link>
      <pubDate>Sat, 24 Oct 2026 02:02:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/modal-dialog-implementation/</guid>
      <description>Compare dialog showModal() with a div modal: inert, focus trap, ESC, scroll lock, focus restoration, and why Tab leaves a dialog (measured in Chrome).</description>
    </item>
    <item>
      <title>WCAG 3 Conformance vs. Bronze, Silver, Gold: How to Claim a Tier</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-conformance-vs-bronze-silver-gold/</link>
      <pubDate>Sun, 18 Oct 2026 00:13:44 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-conformance-vs-bronze-silver-gold/</guid>
      <description>WCAG 3 conformance vs. Bronze, Silver, Gold reporting tiers in the September 2026 draft: what differs, the four steps to claim one, and why no one can yet.</description>
    </item>
    <item>
      <title>Lighthouse Agentic Browsing, Tested: 2/2 for a Button You Can&#39;t Tab To</title>
      <link>https://www.codeslog.com/en/posts/lighthouse-agentic-browsing-accessibility/</link>
      <pubDate>Sat, 10 Oct 2026 23:55:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/lighthouse-agentic-browsing-accessibility/</guid>
      <description>On test pages, a div button no keyboard can press scored Accessibility 100 and Agentic Browsing 2/2. What the check sees, what it misses, and where agent tools split.</description>
    </item>
    <item>
      <title>Why axe and IBM Disagree, Tested Against W3C ACT Rules</title>
      <link>https://www.codeslog.com/en/posts/act-rules-format-1-1/</link>
      <pubDate>Fri, 09 Oct 2026 00:45:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/act-rules-format-1-1/</guid>
      <description>Why do accessibility checkers disagree? I ran 558 approved W3C ACT Rules test cases (556 measurable) through axe-core and IBM Equal Access.</description>
    </item>
    <item>
      <title>WebAIM Million 2026&#39;s &#43;22.5% Was the Wrong Number — Rereading Web Page Complexity</title>
      <link>https://www.codeslog.com/en/posts/webaim-million-2026-page-complexity/</link>
      <pubDate>Fri, 25 Sep 2026 23:35:52 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/webaim-million-2026-page-complexity/</guid>
      <description>WebAIM Million 2026&amp;#39;s 22.5% jump in page complexity was a miscalculation; one-year growth was 14.3%. How to read DOM size, means, and error density.</description>
    </item>
    <item>
      <title>Form Validation Timing: From Blur to aria-invalid</title>
      <link>https://www.codeslog.com/en/posts/form-ux-validation/</link>
      <pubDate>Tue, 15 Sep 2026 11:31:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/form-ux-validation/</guid>
      <description>Forms that flash errors on focus, or stay silent until submit, fail users. Get validation timing, aria-invalid, and aria-describedby right for accessible forms.</description>
    </item>
    <item>
      <title>Focus Management in SPAs: Keeping Screen Readers on Track After Route Changes</title>
      <link>https://www.codeslog.com/en/posts/spa-focus-management/</link>
      <pubDate>Tue, 15 Sep 2026 11:26:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/spa-focus-management/</guid>
      <description>Why screen readers stay silent after SPA route changes, and how to fix it in React and Next.js with focus management, aria-live, and focus restoration patterns.</description>
    </item>
    <item>
      <title>When Google Forms Prints Only One Page: PrintImg Splits a Tall Screenshot into A4 Pages</title>
      <link>https://www.codeslog.com/en/posts/google-forms-print-responses-printimg/</link>
      <pubDate>Fri, 11 Sep 2026 00:59:20 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/google-forms-print-responses-printimg/</guid>
      <description>Google Forms cuts charts or prints one page when you print responses. PrintImg splits a tall screenshot of the summary into clean A4 pages instead.</description>
    </item>
    <item>
      <title>What Changed in the WCAG 3 September 2026 Draft: Levels Move from Conformance to Reporting</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-draft-september-2026/</link>
      <pubDate>Thu, 10 Sep 2026 14:37:24 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-draft-september-2026/</guid>
      <description>WCAG 3 September 2026 Working Draft explained: one conformance line, Bronze/Silver/Gold as reporting tiers, and 216 requirements counted by hand.</description>
    </item>
    <item>
      <title>Safari 27 Fixed top-level await — Retested, and Loading Doubled</title>
      <link>https://www.codeslog.com/en/posts/safari-top-level-await-fix/</link>
      <pubDate>Thu, 03 Sep 2026 11:25:33 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/safari-top-level-await-fix/</guid>
      <description>Reran WebKit&amp;#39;s top-level await repro on Safari 26.6 and iOS 26.5. Past the ReferenceError, modules declared after a TLA one wait for it — loading doubled.</description>
    </item>
    <item>
      <title>Claude 4-Model Accessibility Test: Fable 5.1, Opus, Sonnet 5</title>
      <link>https://www.codeslog.com/en/posts/claude-code-default-model-a11y/</link>
      <pubDate>Thu, 03 Sep 2026 11:01:31 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/claude-code-default-model-a11y/</guid>
      <description>Claude Code&amp;#39;s default Fable model moved to 5.1. I ran 40 accessibility-blind prompts across four models and compared the modal and form code by hand.</description>
    </item>
    <item>
      <title>How Screen Readers Read aria-live Status Messages (WCAG 4.1.3)</title>
      <link>https://www.codeslog.com/en/posts/aria-live-status-messages/</link>
      <pubDate>Wed, 02 Sep 2026 01:24:30 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/aria-live-status-messages/</guid>
      <description>How do screen readers handle aria-live status messages? A demo-driven look at WCAG 4.1.3, polite vs. assertive, debounce timers, and icon or sound status.</description>
    </item>
    <item>
      <title>When aria-live Stays Silent — Getting ARIA Live Regions Right</title>
      <link>https://www.codeslog.com/en/posts/aria-live-regions/</link>
      <pubDate>Wed, 02 Sep 2026 01:14:30 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/aria-live-regions/</guid>
      <description>You added aria-live correctly, but the screen reader stays silent. Why the container must exist before its content, and when to use focus instead.</description>
    </item>
    <item>
      <title>WCAG 3 Accessibility-Support Sets: Korea&#39;s Blank</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-accessibility-support-sets/</link>
      <pubDate>Wed, 19 Aug 2026 18:20:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-accessibility-support-sets/</guid>
      <description>WCAG 3&amp;#39;s March 2026 draft structures accessibility-support sets into a formal clause (§3.2.2) — what its English default leaves blank for Korea&amp;#39;s Sense Reader.</description>
    </item>
    <item>
      <title>KWCAG 2.2 vs. WCAG 3: What&#39;s Actually Different</title>
      <link>https://www.codeslog.com/en/posts/kwcag-vs-wcag-3/</link>
      <pubDate>Wed, 19 Aug 2026 18:15:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/kwcag-vs-wcag-3/</guid>
      <description>Comparing KWCAG 2.2 (Korean Web Content Accessibility Guidelines) with WCAG 3 (3.0) on structure, conformance model, and timeline — and what it means for Korea.</description>
    </item>
    <item>
      <title>WCAG 2.2&#39;s 6 New Criteria: Target Size Hits 24px</title>
      <link>https://www.codeslog.com/en/posts/wcag-22-new-criteria/</link>
      <pubDate>Wed, 19 Aug 2026 18:10:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-22-new-criteria/</guid>
      <description>A code-first, try-it-yourself rundown of WCAG 2.2&amp;#39;s 6 most-used new success criteria, plus the 3 AAA criteria and how KWCAG 2.2 and global standards stack up.</description>
    </item>
    <item>
      <title>WA Certification: Cost, Process, How to Get It</title>
      <link>https://www.codeslog.com/en/posts/web-accessibility-certification-guide/</link>
      <pubDate>Wed, 19 Aug 2026 18:05:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/web-accessibility-certification-guide/</guid>
      <description>A first-timer&amp;#39;s guide to Korea&amp;#39;s Web Accessibility Certification: why get it, KWCAG 2.2, review stages, pass lines, fees, and what it doesn&amp;#39;t guarantee.</description>
    </item>
    <item>
      <title>KWCAG 2.2 Explained: 4 Principles, 33 Checkpoints</title>
      <link>https://www.codeslog.com/en/posts/kwcag-22-guide/</link>
      <pubDate>Wed, 19 Aug 2026 18:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/kwcag-22-guide/</guid>
      <description>KWCAG 2.2, Korea&amp;#39;s national web accessibility standard: 4 principles, 14 guidelines, 33 checkpoints under KS X OT0003:2022, and why its revision year gets misreported.</description>
    </item>
    <item>
      <title>Slack, Discord, Telegram Alerts for Claude Code</title>
      <link>https://www.codeslog.com/en/posts/claude-code-notify-channels/</link>
      <pubDate>Tue, 18 Aug 2026 16:20:01 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/claude-code-notify-channels/</guid>
      <description>Get Claude Code alerts on Slack, Discord, or Telegram with attached files, dodge Slack webhook limits, Discord filename hashing, and back files up via rclone.</description>
    </item>
    <item>
      <title>Claude Code: Email Results When Tasks Finish</title>
      <link>https://www.codeslog.com/en/posts/claude-code-mail-notification/</link>
      <pubDate>Sun, 16 Aug 2026 13:50:17 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/claude-code-mail-notification/</guid>
      <description>Make Claude Code email you result files when a long task finishes: Gmail app passwords, msmtp with Keychain, attachments, hooks, and scheduled digests.</description>
    </item>
    <item>
      <title>CLAUDE.md, AGENTS.md, DESIGN.md — Markdown in the AI Era</title>
      <link>https://www.codeslog.com/en/posts/markdown-ai-era/</link>
      <pubDate>Sat, 15 Aug 2026 01:00:27 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/markdown-ai-era/</guid>
      <description>What the CLAUDE.md, AGENTS.md, DESIGN.md, and llms.txt files in repositories actually do: who reads them, what to write, and where to find examples.</description>
    </item>
    <item>
      <title>Markdown Syntax: Common Pitfalls and Accessibility</title>
      <link>https://www.codeslog.com/en/posts/markdown-syntax-guide/</link>
      <pubDate>Sat, 15 Aug 2026 01:00:27 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/markdown-syntax-guide/</guid>
      <description>A beginner&amp;#39;s guide to Markdown syntax: the nine basics, three pitfalls everyone hits (line breaks, broken bold, dividers), and why Markdown is semantic HTML.</description>
    </item>
    <item>
      <title>Scroll-Driven Animation: When Scroll Becomes the Timeline</title>
      <link>https://www.codeslog.com/en/posts/scroll-driven-animation/</link>
      <pubDate>Wed, 12 Aug 2026 01:34:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/scroll-driven-animation/</guid>
      <description>Scroll-Driven Animation treats scroll not as an event but as the timeline itself. This post compares three implementations — native CSS, IntersectionObserver, and requestAnimationFrame — covering how each works, their tradeoffs, and accessibility.</description>
    </item>
    <item>
      <title>Test Culture, Interviews, and What Comes Next — Wrapping Up the Frontend Testing Series</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-wrap/</link>
      <pubDate>Sat, 08 Aug 2026 01:12:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-wrap/</guid>
      <description>Wrapping up the frontend testing series: the five layers stacked on one small app, what testing means for team culture and interviews, how to start on legacy code with no tests, and where to go next.</description>
    </item>
    <item>
      <title>The Traps in AI-Made Code — Missing Accessibility and Edge Cases</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-ai-pitfalls/</link>
      <pubDate>Fri, 07 Aug 2026 14:59:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-ai-pitfalls/</guid>
      <description>AI-written code is wrong in plausible ways. The accessibility and edge cases AI repeatedly drops, and how the test suite from this series reports each hole automatically — with a real before and after.</description>
    </item>
    <item>
      <title>Playwright × AI — codegen, MCP, Self-Healing Selectors</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-ai-playwright/</link>
      <pubDate>Thu, 06 Aug 2026 01:11:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-ai-playwright/</guid>
      <description>AI now drives the browser itself. A practical map of Playwright codegen and MCP agents: why Playwright MCP reads the accessibility tree rather than screenshots, and why self-healing selectors aren&amp;#39;t a Playwright feature.</description>
    </item>
    <item>
      <title>Generating Tests with AI — Verification Stays Human</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-ai-generate/</link>
      <pubDate>Thu, 06 Aug 2026 00:46:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-ai-generate/</guid>
      <description>How good is AI at writing tests? Practical ways to generate and extend tests with LLMs, what AI reliably misses, and the checklist for trusting AI-written tests.</description>
    </item>
    <item>
      <title>Popover, Anchor Positioning, Dialog: Are They Accessible Enough to Use Yet?</title>
      <link>https://www.codeslog.com/en/posts/browser-features-accessibility-2026/</link>
      <pubDate>Wed, 05 Aug 2026 15:07:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/browser-features-accessibility-2026/</guid>
      <description>A green support table doesn&amp;#39;t mean everyone can use it. Here&amp;#39;s a 2026 accessibility check on popover, anchor positioning, dialog, and view transitions — and what you still have to do yourself for each.</description>
    </item>
    <item>
      <title>How to Read Coverage — and the Metrics Beyond It</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-coverage-metrics/</link>
      <pubDate>Tue, 04 Aug 2026 09:08:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-coverage-metrics/</guid>
      <description>How should you read a coverage report, and how far should you trust it? The difference between line and branch coverage, finding untested forks, and the team-health metrics numbers can&amp;#39;t show.</description>
    </item>
    <item>
      <title>WCAG 3 Status Check: A Complete Rundown of the March 2026 Draft</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-status-2026/</link>
      <pubDate>Tue, 04 Aug 2026 09:08:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-status-2026/</guid>
      <description>Where WCAG 3 (3.0) stands in the March 2026 W3C Working Draft: the 12-category, 44-guideline structure, requirement counts, and the return of Bronze/Silver/Gold.</description>
    </item>
    <item>
      <title>Building Test and Accessibility Gates with GitHub Actions</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-ci-github-actions/</link>
      <pubDate>Mon, 03 Aug 2026 01:59:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-ci-github-actions/</guid>
      <description>A pipeline where unit tests, E2E, and accessibility checks run on every PR. Set up a merge gate with GitHub Actions in one workflow file — CI beginners welcome, terms explained in three minutes.</description>
    </item>
    <item>
      <title>WCAG 3 Migration: Do You Need It Yet? Moving On from WCAG 2.2</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-migration-strategy/</link>
      <pubDate>Mon, 03 Aug 2026 01:37:27 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-migration-strategy/</guid>
      <description>Do you need a WCAG 3 (3.0) migration yet? Why it is still a Working Draft, and a phased strategy for borrowing its Core and Outcomes mindset to improve accessibility today.</description>
    </item>
    <item>
      <title>The EU AI Act Is Now in Force — Where Accessibility Hooks In</title>
      <link>https://www.codeslog.com/en/posts/eu-ai-act-accessibility/</link>
      <pubDate>Thu, 30 Jul 2026 01:02:04 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/eu-ai-act-accessibility/</guid>
      <description>The EU AI Act&amp;#39;s high-risk obligations begin August 2, 2026. Article 16 ties accessibility to the Web Accessibility Directive and the European Accessibility Act — and how Korea&amp;#39;s AI Basic Act compares.</description>
    </item>
    <item>
      <title>Visual Regression Testing — Screenshot Comparison</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-visual-regression/</link>
      <pubDate>Wed, 29 Jul 2026 15:01:36 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-visual-regression/</guid>
      <description>&amp;#39;The feature works but the layout broke.&amp;#39; Catch what only eyes used to catch: implement visual regression tests with Playwright screenshot comparison, stable snapshots, and the environment trap to avoid.</description>
    </item>
    <item>
      <title>The World Works Better With Us — July Is Disability Pride Month</title>
      <link>https://www.codeslog.com/en/posts/disability-pride-month-2026/</link>
      <pubDate>Tue, 28 Jul 2026 01:44:21 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/disability-pride-month-2026/</guid>
      <description>July is Disability Pride Month. Its ADA origins, a pride flag redesigned for accessibility, and what the 2026 theme means from a developer&amp;#39;s seat.</description>
    </item>
    <item>
      <title>The Web Is Less Accessible Than a Year Ago — The WebAIM Million 2026 Report</title>
      <link>https://www.codeslog.com/en/posts/webaim-million-2026/</link>
      <pubDate>Tue, 28 Jul 2026 01:42:21 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/webaim-million-2026/</guid>
      <description>WebAIM Million 2026 scanned the top million home pages: errors per page rose to 56.1, up 10.1% in a year, reversing years of progress. Covers the top 6 recurring errors and the ARIA paradox.</description>
    </item>
    <item>
      <title>Which Pages Do You Audit Out of Thousands?</title>
      <link>https://www.codeslog.com/en/posts/page-sampling-algorithm/</link>
      <pubDate>Tue, 28 Jul 2026 00:47:04 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/page-sampling-algorithm/</guid>
      <description>How do you pick which pages to audit out of thousands? A deterministic algorithm on WCAG-EM 2.0 stratified sampling — URL clustering finds representative pages without fetching a page body.</description>
    </item>
    <item>
      <title>Accessibility E2E — Scanning with @axe-core/playwright</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-axe-e2e/</link>
      <pubDate>Mon, 27 Jul 2026 14:38:51 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-axe-e2e/</guid>
      <description>Catch page-wide accessibility violations automatically, in a real browser. What axe-core is and how it works, how to integrate it into Playwright E2E, and what automation catches — and can&amp;#39;t.</description>
    </item>
    <item>
      <title>Accessibility Evaluation Has a Standard Too — WCAG-EM 2.0, Twelve Years Later</title>
      <link>https://www.codeslog.com/en/posts/wcag-em-2-evaluation-methodology/</link>
      <pubDate>Fri, 24 Jul 2026 10:05:57 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-em-2-evaluation-methodology/</guid>
      <description>W3C has published WCAG-EM 2.0, its accessibility evaluation methodology, twelve years after 1.0. What changed — from websites to apps, e-books and kiosks — the five-step procedure, sampling and random checks, and how it maps to Korea&amp;#39;s certification.</description>
    </item>
    <item>
      <title>The Zombie Task Stuck in &#39;Scanning&#39; — Vercel Deployment Protection Was the Culprit</title>
      <link>https://www.codeslog.com/en/posts/vercel-deployment-protection-zombie-task/</link>
      <pubDate>Fri, 24 Jul 2026 01:45:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/vercel-deployment-protection-zombie-task/</guid>
      <description>Right after launch, two audits sat stuck &amp;#39;scanning&amp;#39; for hours. Two fixes I was sure of missed, and only the third found the real culprit — Vercel Deployment Protection was blocking an internal call with a 401. A serverless queue debugging story.</description>
    </item>
    <item>
      <title>An Open-Source Web Accessibility Checker — The A11y Check Story</title>
      <link>https://www.codeslog.com/en/posts/a11ychk-accessibility-audit/</link>
      <pubDate>Thu, 23 Jul 2026 13:28:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/a11ychk-accessibility-audit/</guid>
      <description>Meet A11y Check, an open-source web accessibility checker. It audits against WCAG 2.2 and KWCAG together, finds violations, and hands you an AI-ready fix guide — plus a compliance badge, and why the engine is open source.</description>
    </item>
    <item>
      <title>Traces, Debugging, and Retries — Tracking Down the Cause</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-playwright-debug/</link>
      <pubDate>Wed, 22 Jul 2026 01:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-playwright-debug/</guid>
      <description>What do you look at when a test fails only on CI? Playwright&amp;#39;s trace viewer and debugging tools track the real cause — with evidence, not guesswork — and turn retries into a signal instead of a fix.</description>
    </item>
    <item>
      <title>Fixtures, Auth Reuse, and Parallel Runs</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-playwright-fixtures/</link>
      <pubDate>Tue, 21 Jul 2026 01:25:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-playwright-fixtures/</guid>
      <description>Repeating the same setup in every test? Playwright&amp;#39;s custom fixtures (base.extend) and Page Object pattern remove it, storageState logs in once, and fullyParallel keeps the suite fast and isolated.</description>
    </item>
    <item>
      <title>The Color Is Right but the Contrast Is Wrong: The Accessibility Trap CSS opacity Sets</title>
      <link>https://www.codeslog.com/en/posts/opacity-contrast-trap/</link>
      <pubDate>Tue, 21 Jul 2026 00:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/opacity-contrast-trap/</guid>
      <description>You put a dark gray in your CSS, yet the accessibility checker flags it for low contrast. The culprit is opacity. Here&amp;#39;s how opacity mixes your text color into the background and quietly kills contrast — with a real case, the math, and the fix.</description>
    </item>
    <item>
      <title>Locators and auto-wait — Taming Flaky Tests</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-playwright-locators/</link>
      <pubDate>Sat, 18 Jul 2026 23:06:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-playwright-locators/</guid>
      <description>Why E2E tests fail only sometimes, and the actual fix. Understand Playwright locators, auto-wait, and strict mode, and cut flakiness at the root with robust selectors.</description>
    </item>
    <item>
      <title>Supporting High Contrast Mode Properly: forced-colors and System Colors</title>
      <link>https://www.codeslog.com/en/posts/high-contrast-mode/</link>
      <pubDate>Sat, 18 Jul 2026 22:47:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/high-contrast-mode/</guid>
      <description>Dark mode is about choosing colors; high contrast mode is about responding to the colors the OS forces. How to support low-vision users with the forced-colors media query, system color keywords, and prefers-contrast — with practical code.</description>
    </item>
    <item>
      <title>Dark Mode Done Right: CSS Variable Design to Contrast Verification</title>
      <link>https://www.codeslog.com/en/posts/dark-mode-implementation/</link>
      <pubDate>Sat, 18 Jul 2026 02:44:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/dark-mode-implementation/</guid>
      <description>Design dark mode with CSS custom properties, implement prefers-color-scheme with JS toggle, and verify color contrast in both modes. A practical guide to dark mode that works for everyone.</description>
    </item>
    <item>
      <title>Getting Started with Playwright E2E — Your First Scenario</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-playwright-intro/</link>
      <pubDate>Sat, 18 Jul 2026 02:25:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-playwright-intro/</guid>
      <description>E2E verifies whole user flows in a real browser. Install Playwright, understand the webServer config, and write and pass your first scenario — with a clear role split against unit and component tests.</description>
    </item>
    <item>
      <title>Folding Accessibility into Tests — Role-Based Queries</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-a11y-queries/</link>
      <pubDate>Fri, 17 Jul 2026 01:37:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-a11y-queries/</guid>
      <description>A well-written test is an accessibility check. Use role-based queries and accessible names to catch accessibility regressions with the tests you already write — no new tools required.</description>
    </item>
    <item>
      <title>?? vs ||: Why Your Zero Keeps Disappearing</title>
      <link>https://www.codeslog.com/en/posts/javascript-nullish-coalescing/</link>
      <pubDate>Tue, 14 Jul 2026 23:52:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/javascript-nullish-coalescing/</guid>
      <description>The decisive difference between the nullish coalescing operator (??) and || — it&amp;#39;s why 0 and empty strings get swallowed by defaults. Falsy traps, ??= assignment, optional chaining combos, and why mixing the two throws a SyntaxError.</description>
    </item>
    <item>
      <title>Mocking the Network with MSW — Isolating the API</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-msw/</link>
      <pubDate>Tue, 14 Jul 2026 01:05:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-msw/</guid>
      <description>Calling a real API in tests is slow and unstable. Isolate the network layer with MSW (Mock Service Worker) and simulate success and failure responses at will — a real reception desk for your requests.</description>
    </item>
    <item>
      <title>71% Accessible Is Not Accessible — The Carrefour Ruling and One Year of the EAA</title>
      <link>https://www.codeslog.com/en/posts/eaa-carrefour-ruling/</link>
      <pubDate>Tue, 14 Jul 2026 00:40:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/eaa-carrefour-ruling/</guid>
      <description>A court in Caen gave Carrefour six months to fix its site and app or pay 500 euros a day — Europe&amp;#39;s first EAA enforcement ruling. Why 71% RGAA conformity wasn&amp;#39;t enough.</description>
    </item>
    <item>
      <title>Testing Forms, Interaction, and State — with user-event</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-user-event/</link>
      <pubDate>Mon, 13 Jul 2026 23:39:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-user-event/</guid>
      <description>Reproduce real user interactions — typing, clicking, selecting — with user-event, and test forms and state changes from render to result, the way a user would actually drive them.</description>
    </item>
    <item>
      <title>The Testing Library Philosophy — Querying Like a User</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-testing-library/</link>
      <pubDate>Fri, 10 Jul 2026 01:27:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-testing-library/</guid>
      <description>React Testing Library&amp;#39;s core philosophy: test like a user. Learn the query priority built around getByRole, and how testing behavior instead of implementation makes tests survive refactoring.</description>
    </item>
    <item>
      <title>mock, stub, spy — Understanding Test Doubles Properly</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-test-doubles/</link>
      <pubDate>Fri, 10 Jul 2026 00:44:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-test-doubles/</guid>
      <description>mock, stub, spy, fake… the confusing test-double vocabulary, sorted out. Cover all three with a single Vitest vi.fn() (Jest is nearly identical), and learn the one rule for how much to fake.</description>
    </item>
    <item>
      <title>TypeScript 7 Is Here — The 10x Native Compiler, and Whether You Should Switch Now</title>
      <link>https://www.codeslog.com/en/posts/typescript-7-native-compiler/</link>
      <pubDate>Thu, 09 Jul 2026 23:05:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/typescript-7-native-compiler/</guid>
      <description>TypeScript 7 has shipped, reborn in Go. Real benchmarks (VSCode: 125s to 10s), the new strict-by-default config, side-by-side installs with 6.x — everything you need to decide whether to switch today.</description>
    </item>
    <item>
      <title>Testing Async Code, Timers, and Errors</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-async/</link>
      <pubDate>Wed, 08 Jul 2026 00:27:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-async/</guid>
      <description>Promises, setTimeout, and failure cases. Test async code with Vitest&amp;#39;s resolves/rejects matchers and fake timers, building a debounce test — and see why a missing await lets a broken test pass anyway.</description>
    </item>
    <item>
      <title>Unit Testing Basics — Pure Functions, Edge Cases, and the AAA Pattern</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-unit-basics/</link>
      <pubDate>Mon, 06 Jul 2026 00:20:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-unit-basics/</guid>
      <description>The sturdiest foundation there is: unit tests. Learn how to test pure functions, hunt edge cases, and structure every test with the AAA (Arrange-Act-Assert) pattern — with real-world examples.</description>
    </item>
    <item>
      <title>Wiring Vitest into the Demo App — All the Way to the First Green Light</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-setup-vitest/</link>
      <pubDate>Sun, 05 Jul 2026 00:05:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-setup-vitest/</guid>
      <description>Install Vitest and Testing Library in a React &#43; Vite &#43; TypeScript demo app and walk all the way to your first passing test — with the common setup pitfalls mapped out.</description>
    </item>
    <item>
      <title>What to Test, and How Much — The Trap of 100% Coverage</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-strategy-coverage/</link>
      <pubDate>Sat, 04 Jul 2026 22:34:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-strategy-coverage/</guid>
      <description>Are more tests always better? A guide to what deserves tests first, plus three traps that inflate coverage without protecting users: assert-less tests, snapshot piles, and implementation-detail spies.</description>
    </item>
    <item>
      <title>Testing Terms, All in One Place — A Frontend Testing Glossary (Appendix)</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-glossary/</link>
      <pubDate>Sat, 04 Jul 2026 22:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-glossary/</guid>
      <description>From unit tests to flaky, fixtures, and MCP — every term in the Frontend Testing, Done Right series, explained for beginners and ordered the way you&amp;#39;ll meet them. Bookmark this page and come back whenever a word looks unfamiliar.</description>
    </item>
    <item>
      <title>Why Frontend Testing, Why Now — A Seatbelt for the AI Era</title>
      <link>https://www.codeslog.com/en/posts/frontend-testing-why-now/</link>
      <pubDate>Fri, 03 Jul 2026 16:33:17 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/frontend-testing-why-now/</guid>
      <description>The faster AI writes code, the more testing matters. In this opener of the Frontend Testing, Done Right series, we cover what tests really give you, pyramid vs. trophy strategy, and the full curriculum ahead.</description>
    </item>
    <item>
      <title>Bought With My Own Money: Dr. Lee Pomodoro Timer Review — The Simplest Tool for a 90-Minute Routine</title>
      <link>https://www.codeslog.com/en/posts/dr-lee-pomodoro-timer/</link>
      <pubDate>Mon, 22 Jun 2026 01:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/dr-lee-pomodoro-timer/</guid>
      <description>An honest, self-bought review of the Dr. Lee Brain-Science Pomodoro Timer, developed by a KAIST PhD. I cover 7 things I liked and 3 I wish were better about this gravity-controlled digital flip timer — with a bit of accessibility thrown in.</description>
    </item>
    <item>
      <title>You Are Already an Accessibility User</title>
      <link>https://www.codeslog.com/en/posts/gaad-2026-accessibility-for-everyone/</link>
      <pubDate>Wed, 20 May 2026 00:01:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/gaad-2026-accessibility-for-everyone/</guid>
      <description>Captions, dark mode, one-handed phone use... you&amp;#39;re already benefiting from accessibility features. On GAAD 2026, let&amp;#39;s explore what &amp;#39;accessibility for everyone&amp;#39; really means.</description>
    </item>
    <item>
      <title>May Greetings for Everyone — The Story of Daon Card</title>
      <link>https://www.codeslog.com/en/posts/daoncard-a11y-card-family-month/</link>
      <pubDate>Fri, 08 May 2026 23:25:57 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/daoncard-a11y-card-family-month/</guid>
      <description>Digital cards are often unusable with a screen reader or low vision. Daon Card (daoncard.com) is a free WCAG 2.2 AA card service I built, with real-time contrast checks and keyboard support.</description>
    </item>
    <item>
      <title>Presenting at an Accessibility Seminar — A Journey Toward a Happier Web: The ModuWeb Story</title>
      <link>https://www.codeslog.com/en/posts/moduweb-accessibility-seminar/</link>
      <pubDate>Thu, 23 Apr 2026 22:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/moduweb-accessibility-seminar/</guid>
      <description>A recap of presenting ModuWeb, an open-source overlay accessibility tool, at an AI Accessibility seminar in Seoul — plus an honest take on overlay-tool criticism and other speakers&amp;#39; talks.</description>
    </item>
    <item>
      <title>The Redesigned Cheong Wa Dae Website — But What About Accessibility?</title>
      <link>https://www.codeslog.com/en/posts/president-site-redesign-accessibility/</link>
      <pubDate>Tue, 21 Apr 2026 00:00:57 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/president-site-redesign-accessibility/</guid>
      <description>We audited the redesigned Cheong Wa Dae website (president.go.kr) against KWCAG 2.2 — skip navigation and dark mode are wins, but ARIA landmarks, tabindex, and image alt text still need fixes.</description>
    </item>
    <item>
      <title>Quiet Work — On Receiving Korea&#39;s Minister of Education Commendation at the 46th Disability Day</title>
      <link>https://www.codeslog.com/en/posts/disability-day-commendation-2026/</link>
      <pubDate>Mon, 20 Apr 2026 22:50:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/disability-day-commendation-2026/</guid>
      <description>Reflecting on 15 years of web accessibility work at a university — from earning the nation&amp;#39;s first classroom accessibility certification to open-sourcing ModuWeb and receiving Korea&amp;#39;s Minister of Education Commendation.</description>
    </item>
    <item>
      <title>Why Does Copy-Pasting from HWP Cause &#39;?&#39; in MSSQL — VARCHAR vs NVARCHAR Explained</title>
      <link>https://www.codeslog.com/en/posts/mssql-varchar-nvarchar-unicode/</link>
      <pubDate>Mon, 20 Apr 2026 00:42:48 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/mssql-varchar-nvarchar-unicode/</guid>
      <description>Special characters copied from HWP turning into &amp;#39;?&amp;#39; in MSSQL? This post explains why VARCHAR corrupts on Korean documents, how code pages work, and how to fix it with NVARCHAR and the N prefix.</description>
    </item>
    <item>
      <title>Form Accessibility Mastery: Designing Accessible Input Forms for Everyone</title>
      <link>https://www.codeslog.com/en/posts/form-accessibility-mastery/</link>
      <pubDate>Sat, 11 Apr 2026 00:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/form-accessibility-mastery/</guid>
      <description>A complete guide to form accessibility based on WCAG 2.2 — from label associations and ARIA usage to error handling and keyboard navigation. Learn with a live demo.</description>
    </item>
    <item>
      <title>Promise.all vs Promise.allSettled: The Difference That Matters</title>
      <link>https://www.codeslog.com/en/posts/javascript-promise-methods/</link>
      <pubDate>Wed, 08 Apr 2026 01:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/javascript-promise-methods/</guid>
      <description>One failing Promise can take down your entire dashboard. Compare Promise.all and Promise.allSettled with real-world examples, and learn when to use which.</description>
    </item>
    <item>
      <title>Function Declarations vs Expressions: Hoisting Explained</title>
      <link>https://www.codeslog.com/en/posts/javascript-function-hoisting/</link>
      <pubDate>Sat, 04 Apr 2026 02:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/javascript-function-hoisting/</guid>
      <description>Learn the difference between function declarations and expressions, how hoisting works under the hood, and when to use arrow functions in practice.</description>
    </item>
    <item>
      <title>17.1% Alt Text Compliance: What South Korea&#39;s 2025 Web Accessibility Survey Reveals</title>
      <link>https://www.codeslog.com/en/posts/2025-web-accessibility-survey/</link>
      <pubDate>Mon, 30 Mar 2026 23:40:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/2025-web-accessibility-survey/</guid>
      <description>South Korea&amp;#39;s 2025 web accessibility survey, now measured against KWCAG 2.2&amp;#39;s 32 checkpoints: the average score rose to 70.4, yet alt text compliance is only 17.1 percent, the lowest of all items.</description>
    </item>
    <item>
      <title>How Accessible Is Google&#39;s New IDE Homepage? — Analyzing Google Antigravity</title>
      <link>https://www.codeslog.com/en/posts/google-antigravity-accessibility/</link>
      <pubDate>Tue, 17 Mar 2026 16:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/google-antigravity-accessibility/</guid>
      <description>An accessibility teardown of Google Antigravity&amp;#39;s homepage: wrapping every letter in its own div breaks screen readers and browser translation. Covers WCAG violations, ADA context, and fixes.</description>
    </item>
    <item>
      <title>Color Accessibility: Designing Colors That Everyone Can Perceive</title>
      <link>https://www.codeslog.com/en/posts/color-accessibility/</link>
      <pubDate>Fri, 06 Mar 2026 00:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/color-accessibility/</guid>
      <description>Color design for color vision deficiency and low vision: the WCAG 2.2 contrast ratio of 4.5:1 and how it&amp;#39;s calculated, never relying on color alone, dark mode contrast, and brand colors that fail.</description>
    </item>
    <item>
      <title>WCAG 3.0 Expanded Scope: Beyond the Web</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-expanded-scope-beyond-web/</link>
      <pubDate>Mon, 23 Feb 2026 00:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-expanded-scope-beyond-web/</guid>
      <description>WCAG 3.0 Draft extends scope beyond web content to wearables, Web of Things, VR/AR, and the tooling ecosystem, and covers how South Korea&amp;#39;s kiosk accessibility connects to that expansion.</description>
    </item>
    <item>
      <title>Seollal Holiday Information Isn’t Visible to Everyone</title>
      <link>https://www.codeslog.com/en/posts/seollal-gov-accessibility/</link>
      <pubDate>Sun, 15 Feb 2026 02:40:12 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/seollal-gov-accessibility/</guid>
      <description>One month after Korea&amp;#39;s Digital Inclusion Act took effect, I compare the Blue House&amp;#39;s image-only Seollal card news, which has no alt text, against the Ministry of Health and Welfare&amp;#39;s text-based approach.</description>
    </item>
    <item>
      <title>Thoughts on Writing Blog Posts</title>
      <link>https://www.codeslog.com/en/posts/blog-writing-thoughts/</link>
      <pubDate>Thu, 05 Feb 2026 00:35:12 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/blog-writing-thoughts/</guid>
      <description>A candid reflection on writing about web accessibility and frontend: code-heavy posts kept breaking the reading flow, so I&amp;#39;m moving to narrative first, with code split into a demo or repo.</description>
    </item>
    <item>
      <title>Keyboard Accessibility A to Z: Building Websites Everyone Can Use Without a Mouse</title>
      <link>https://www.codeslog.com/en/posts/keyboard-accessibility-a-to-z/</link>
      <pubDate>Tue, 03 Feb 2026 00:01:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/keyboard-accessibility-a-to-z/</guid>
      <description>Making a site fully usable without a mouse: tabindex and Tab order, skip links, focus traps and focus restoration in modals, :focus-visible focus styling, and keyboard alternatives to drag and drop.</description>
    </item>
    <item>
      <title>Assertions: A New Unit for Accessibility Evaluation</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-assertions/</link>
      <pubDate>Sun, 01 Feb 2026 00:10:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-assertions/</guid>
      <description>WCAG 3.0 Assertions document accessibility procedures automated tests cannot verify. This post covers the 28 assertions in the March 2026 Draft and how they differ from WCAG 2.2&amp;#39;s Conformance Claim.</description>
    </item>
    <item>
      <title>Scheduled Publishing with GitHub Actions Every 3 Hours</title>
      <link>https://www.codeslog.com/en/posts/github-actions-scheduled-publish-check/</link>
      <pubDate>Fri, 30 Jan 2026 08:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/github-actions-scheduled-publish-check/</guid>
      <description>Solve two challenges at once on a static blog: scheduled publishing and Cloudflare build limits. Run GitHub Actions publish checks every 3 hours and trigger builds only when needed.</description>
    </item>
    <item>
      <title>Atomic Tests vs. Holistic Tests: A New Testing Approach</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-atomic-holistic-tests/</link>
      <pubDate>Mon, 26 Jan 2026 01:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-atomic-holistic-tests/</guid>
      <description>Compare WCAG 3.0’s quantitative/qualitative testing flow with WCAG 2.2’s success-criteria model. We cover Atomic/Holistic concepts, view/process scope, and how tests connect to scoring from a practical perspective.</description>
    </item>
    <item>
      <title>WCAG 3.0 Conformance Model: Moving Beyond A/AA/AAA</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-scoring-conformance/</link>
      <pubDate>Sun, 25 Jan 2026 00:10:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-scoring-conformance/</guid>
      <description>Explore how WCAG 3(3.0)&amp;#39;s conformance model moves beyond A/AA/AAA. Covers the Core/Supplemental/Assertions structure, the returning Bronze/Silver/Gold levels, and views/processes-based scope, based on the March 2026 draft.</description>
    </item>
    <item>
      <title>Improving Multilingual Blog UX: Building a Smart Language Suggestion Banner</title>
      <link>https://www.codeslog.com/en/posts/language-switcher-banner/</link>
      <pubDate>Fri, 23 Jan 2026 08:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/language-switcher-banner/</guid>
      <description>Built a banner that detects browser language via navigator.language and auto-suggests the right version of a Hugo blog, with WCAG 2.2 AA keyboard navigation and screen reader support built in.</description>
    </item>
    <item>
      <title>ARIA Practical Guide: Implementing Accessible Web Interfaces</title>
      <link>https://www.codeslog.com/en/posts/aria-practical-guide/</link>
      <pubDate>Thu, 22 Jan 2026 02:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/aria-practical-guide/</guid>
      <description>A practical guide to applying ARIA in real projects: when to use it and when not to, plus code patterns for aria-live regions, custom tab/accordion/dropdown widgets, and accessible modal dialogs.</description>
    </item>
    <item>
      <title>WCAG 3.0 Structure Anatomy: From Success Criteria to Outcomes</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-structure-outcomes/</link>
      <pubDate>Mon, 19 Jan 2026 08:30:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-structure-outcomes/</guid>
      <description>WCAG 3.0 restructures accessibility into Guidelines, Outcomes, and Methods. Covers the 153 requirements (Core 92 &#43; Supplemental 61), Atomic vs. Holistic Tests, and a login-form example vs WCAG 2.2.</description>
    </item>
    <item>
      <title>Building a Dynamic Comment System on a Static Site: Giscus &#43; GraphQL API</title>
      <link>https://www.codeslog.com/en/posts/blog-comment-visibility-features/</link>
      <pubDate>Fri, 16 Jan 2026 18:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/blog-comment-visibility-features/</guid>
      <description>Adding Giscus comment counts, a recent-comments list, and an all-comments page to a Hugo static blog: the GitHub GraphQL API, token and Cloudflare Pages setup, localStorage caching, and accessibility.</description>
    </item>
    <item>
      <title>The Dawn of WCAG 3.0: Why We Need New Guidelines</title>
      <link>https://www.codeslog.com/en/posts/wcag-3-era-why-new-guidelines/</link>
      <pubDate>Mon, 12 Jan 2026 23:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/wcag-3-era-why-new-guidelines/</guid>
      <description>WCAG evolved from 1.0 to 2.2 over 26 years. This post explains why WCAG 3.0 exists: the All-or-Nothing dilemma, checkbox accessibility, and the shift from pass/fail checklists to user outcomes.</description>
    </item>
    <item>
      <title>Code Block Accessibility Improvement: Line Numbers That Screen Reader Users Can Choose</title>
      <link>https://www.codeslog.com/en/posts/code-block-accessibility-improvement/</link>
      <pubDate>Fri, 09 Jan 2026 20:00:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/code-block-accessibility-improvement/</guid>
      <description>A record of improving code blocks on a Hugo PaperMod blog. We replaced table-based line numbers with CSS counters so screen reader users can read code without the noise of table markup — a more semantic, accessible approach.</description>
    </item>
    <item>
      <title>Beyond Regulation, Toward Trust - The AI Basic Act and Accessibility</title>
      <link>https://www.codeslog.com/en/posts/ai-basic-act-accessibility/</link>
      <pubDate>Wed, 07 Jan 2026 18:59:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/ai-basic-act-accessibility/</guid>
      <description>Reading Korea&amp;#39;s AI Basic Act (effective Jan 22, 2026) through a web accessibility lens: mapping WCAG&amp;#39;s four principles onto its transparency, high-impact AI, and generative AI labeling duties.</description>
    </item>
    <item>
      <title>Beyond Technology, Toward People – Understanding the Digital Inclusion Act</title>
      <link>https://www.codeslog.com/en/posts/digital-inclusion-act/</link>
      <pubDate>Tue, 06 Jan 2026 18:59:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/digital-inclusion-act/</guid>
      <description>A people-centered look at Korea&amp;#39;s Digital Inclusion Act (effective Jan 22, 2026): how it differs from the Framework Act on Intelligent Informatization, kiosk usability obligations, and impact assessment duties developers should know.</description>
    </item>
    <item>
      <title>Beyond Accessibility to Digital Inclusion - The Beginning of a New Era</title>
      <link>https://www.codeslog.com/en/posts/digital-inclusion-new-era/</link>
      <pubDate>Mon, 05 Jan 2026 23:50:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/digital-inclusion-new-era/</guid>
      <description>Ahead of the Digital Inclusion Act (Jan 22), this piece shows how accessibility is expanding to digital inclusion through real cases and frames the questions we must ask for inclusive design.</description>
    </item>
    <item>
      <title>Questions I Asked at the AI Public Service Evaluation</title>
      <link>https://www.codeslog.com/en/posts/ai-evaluation-review/</link>
      <pubDate>Wed, 31 Dec 2025 01:51:00 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/ai-evaluation-review/</guid>
      <description>My experience as a citizen evaluator for an AI agent competition. Recording the questions I asked about accessibility, failure response, and communication design.</description>
    </item>
    <item>
      <title>A $35 Evaluation Panel — Why I&#39;m Still Going to Seoul</title>
      <link>https://www.codeslog.com/en/posts/evaluation-panel-seoul/</link>
      <pubDate>Tue, 30 Dec 2025 01:07:37 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/evaluation-panel-seoul/</guid>
      <description>A full day of my time, travel paid out of pocket, and just 50,000 won in return — yet I&amp;#39;m heading to Seoul as a citizen evaluator for an AI agent competition. A reflection on why a seemingly losing choice can plant seeds for the future.</description>
    </item>
    <item>
      <title>The Complete Guide to Semantic HTML: Escaping Div Hell</title>
      <link>https://www.codeslog.com/en/posts/semantic-html-guide/</link>
      <pubDate>Tue, 23 Dec 2025 02:32:17 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/semantic-html-guide/</guid>
      <description>Move from div-only markup to semantic HTML: when to use header, nav, main, article, and section, how article and section differ, plus heading levels and ARIA landmarks, with before-and-after examples.</description>
    </item>
    <item>
      <title>Web Accessibility in the AI Era: Universal Values That Must Evolve With Technology</title>
      <link>https://www.codeslog.com/en/posts/web-accessibility-ai-era/</link>
      <pubDate>Tue, 23 Dec 2025 00:29:12 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/web-accessibility-ai-era/</guid>
      <description>Can everyone use the web that AI builds? The accessibility gaps generative AI tends to miss, the four WCAG 2.2 principles in code, AI-generated alt text, and building an accessible AI chatbot.</description>
    </item>
    <item>
      <title>Blog, Beginning</title>
      <link>https://www.codeslog.com/en/posts/first-post/</link>
      <pubDate>Mon, 22 Sep 2025 02:08:23 +0900</pubDate>
      <guid>https://www.codeslog.com/en/posts/first-post/</guid>
      <description>The first post on this blog. A self-described perpetual beginner starting a place to record frontend and backend work, web accessibility, dev tooling, and side projects — and share what sticks.</description>
    </item>
  </channel>
</rss>
