Every text-bearing element on all 57 shipped pages is resolved to a pair — the colour the text ends up with, and the colour genuinely behind it — and the ratio between the two has to reach the usual minimum for normal-size text. Resolving the background is the whole job: it is rarely set on the element itself, so the check walks up the ancestors, respects which rule wins, and follows a token through its chain.
It was written before the palette work rather than after, and the first run was red. A dark section was re-skinning its text by listing class names, and one note paragraph was not on that list, so it kept a light-surface colour on a dark background on five legal pages. The reading was 3.09 against a minimum of 4.5. The fix was not to add the missing name to the list — a list like that is closed, and the next component written would be born exempt from it too — but to re-skin the token itself, which closes the whole class at once. Both halves are in the same change as this sentence.
What it does not see is worth stating, because it is where the next defect of this kind will live: rules that only apply at a particular screen width, rules that depend on a state or an attribute rather than a class, and backgrounds that are part gradient or part translucent. The last of those are reported as unresolved rather than counted as clean, and the selectors in the middle group are pinned by name so that adding one turns the gate red instead of slipping past it.
test/siteKontrast.test.ts :: KAPI: sevk edilen hiçbir metin düğümü kontrast eşiğinin ALTINDA değil
test/siteKontrast.test.ts :: ÖLÇÜLEMEDİ kovası AYRI: çözülemeyen zemin TEMİZ sayılmaz, SINIFIYLA bildirilir
test/siteKontrast.test.ts :: KÖR NOKTA: statiğin görmediği DİNLENME seçicileri ADIYLA pinli