Normal text needs 4.5:1, large text 3:1. Aim for AAA (7:1) on body when feasible.
Use a contrast checker on every text/background combo before shipping.
A product card's caption is a tasteful light grey on white — crisp in Figma, gone the instant it's read outdoors or by low-vision eyes. It just failed an accessibility audit.