Skip to content

Hi there 👋

Codeslog - an eternal learner’s growth chronicle. Real journeys over perfect tutorials. Where small records accumulate into great assets.
Fixtures, Auth Reuse, and Parallel Runs thumbnail

Fixtures, Auth Reuse, and Parallel Runs

This is Part 13 of the “Frontend Testing, Done Right” series. Browse the full series · Glossary Past ten E2E tests, two things start to hurt: the setup code copy-pasted into every test, and the suite slowing down as it runs in sequence. Playwright’s fixtures (a mechanism that injects repeated setup into tests) and parallel execution solve both at once — this article covers custom fixtures, auth reuse (storageState), and the safety rules for parallelism. ...

Published date: 2026-07-21 · Reading time: 4 min · Word count: 1731 words · Author: Isaac
The Color Is Right but the Contrast Is Wrong: The Accessibility Trap CSS opacity Sets thumbnail

The Color Is Right but the Contrast Is Wrong: The Accessibility Trap CSS opacity Sets

I had clearly written a dark gray into my CSS. color: #595959. On a white background that color has a contrast of 6.4:1, which comfortably clears the accessibility bar of 4.5:1. Pass. Then I ran an accessibility checker, and a red line appeared. This text has a contrast of 4.04:1, which is insufficient. Expected ratio: 4.5:1. I put in a color that measures 6.4:1, so why is it calling it 4:1? Was the checker wrong? ...

Published date: 2026-07-21 · Reading time: 6 min · Word count: 2544 words · Author: Isaac
Locators and auto-wait — Taming Flaky Tests thumbnail

Locators and auto-wait — Taming Flaky Tests

This is Part 12 of the “Frontend Testing, Done Right” series. Browse the full series · Glossary Flaky tests — the code hasn’t changed, yet some days it passes and some days it fails. It’s the first illness every team catches when adopting E2E, and left untreated it breeds a scary culture: “that one again? just rerun it.” Fortunately the cause is usually singular: finding elements too early, or the wrong way. This article pulls that root out with Playwright’s locators and auto-wait. ...

Published date: 2026-07-18 · Reading time: 5 min · Word count: 2162 words · Author: Isaac
Supporting High Contrast Mode Properly: forced-colors and System Colors thumbnail

Supporting High Contrast Mode Properly: forced-colors and System Colors

Some people set their screen to maximum contrast. Yellow text on black, white text on blue, that sort of thing. For low-vision users this is the difference between being able to read the text and not; people with migraines or light sensitivity go the other way, using a muted, low-contrast palette. They have one thing in common — the user decides the colors. And the moment they do, a good chunk of the colors we wrote in CSS get ignored. ...

Published date: 2026-07-18 · Reading time: 12 min · Word count: 2398 words · Author: Isaac
Dark Mode Done Right: CSS Variable Design to Contrast Verification thumbnail

Dark Mode Done Right: CSS Variable Design to Contrast Verification

I turned on dark mode and my eyes hurt more. The background was black but the text was a heavy gray, so the contrast was far too low; links were still the default blue (#0000ff), which stung. Images blazed alone against the dark screen. One button was the same color as its background, so it was simply invisible. It said “dark mode supported.” But it was dark mode by color inversion, nothing more. ...

Published date: 2026-07-18 · Reading time: 15 min · Word count: 3051 words · Author: Isaac
Getting Started with Playwright E2E — Your First Scenario thumbnail

Getting Started with Playwright E2E — Your First Scenario

This is Part 11 of the “Frontend Testing, Done Right” series. Browse the full series · Glossary Playwright is an E2E testing tool that drives real browsers (Chromium, Firefox, WebKit) with code. E2E (End-to-End) is exactly what it says — reproducing the entire flow of a user visiting, searching, and seeing results, in an actual browser. This article goes from install to a passing first scenario in one sitting. If you’ve been following the series, this is where the stage gets bigger — we’ve been playing inside jsdom, a pretend browser; now we open a real one. New here? No problem: we start from installation, and you can put any Vite/React app of yours where the demo app sits. (Demo UI strings are Korean — 대시보드 = “Dashboard”, 검색 = “Search”.) ...

Published date: 2026-07-18 · Reading time: 5 min · Word count: 2251 words · Author: Isaac
Folding Accessibility into Tests — Role-Based Queries thumbnail

Folding Accessibility into Tests — Role-Based Queries

This is Part 10 of the “Frontend Testing, Done Right” series. Browse the full series · Glossary What comes to mind when you hear “accessibility testing”? Hiring a consultant, adopting a dedicated audit tool, working through checklists hundreds of items long… it’s easy to picture something big. Surprisingly, though, half of accessibility verification comes free just from writing component tests well. This article is that principle plus the practice — flushing out div buttons, naming icon buttons, and guarding focus that vanishes into thin air. ...

Published date: 2026-07-17 · Reading time: 8 min · Word count: 3746 words · Author: Isaac
?? vs ||: Why Your Zero Keeps Disappearing thumbnail

?? vs ||: Why Your Zero Keeps Disappearing

Running a quiz service, we got a complaint one day: “I just took the test — why does it say ‘No score’?” We checked. Their score was zero. The database clearly stored 0, the API returned 0 faithfully. The culprit was a single line in the UI code. javascript 라인 넘버 읽기: OFF 라인 넘버 읽기 기능 도움말 라인 넘버 읽기 기능 이 버튼은 스크린 리더 사용자를 위한 기능입니다. ...

Published date: 2026-07-14 · Reading time: 9 min · Word count: 1791 words · Author: Isaac
Mocking the Network with MSW — Isolating the API thumbnail

Mocking the Network with MSW — Isolating the API

This is Part 9 of the “Frontend Testing, Done Right” series. Browse the full series · Glossary The moment a component starts calling an API, tests get shaky. A slow server makes them slow, changed data breaks them, and offline they’re wiped out. MSW (Mock Service Worker) intercepts network requests at the boundary and returns prepared responses, solving the problem at its root. This one article covers installation, handlers, and simulating both success and failure. ...

Published date: 2026-07-14 · Reading time: 5 min · Word count: 2324 words · Author: Isaac
71% Accessible Is Not Accessible — The Carrefour Ruling and One Year of the EAA thumbnail

71% Accessible Is Not Accessible — The Carrefour Ruling and One Year of the EAA

Imagine scoring 71 on a test. Not quite “well done,” but surely enough to say “you tried,” right? Carrefour, one of France’s largest retailers, seems to have thought so too. In court, the company argued: “Our website complies with 71% of the French accessibility standard.” The court’s answer was blunt. “An e-commerce site cannot be only somewhat accessible; it must be totally accessible.” On June 4, 2026, the judicial court of Caen, France, ordered Carrefour to make its website and mobile app fully accessible within six months. Miss the deadline, and a penalty of 500 euros accrues every single day. It’s the first enforcement ruling to come out of the European Accessibility Act (EAA) regime. ...

Published date: 2026-07-14 · Reading time: 9 min · Word count: 1845 words · Author: Isaac
맨 위로