The Consent QA Checklist: What to Test Before You Ship a Release
Why Consent Needs Its Own QA
Consent breaks quietly. A new script added by a teammate, a changed tag trigger, or a renamed cookie can start tracking before the visitor chooses, or stop recording choices altogether, and nobody notices until a report looks odd. A short, repeatable checklist run before each release catches most of these.
Run the checks in a clean browser profile or private window, with extensions disabled, and note the result next to each item.
A. First Visit
- Banner appears on the first page load without a layout jump that covers important content.
- No non-essential tags fire before a choice. Check the network tab for analytics and advertising requests.
- No non-essential cookies are set before a choice. Check the Application tab.
- Default consent signals are denied where consent is required.
- Page remains usable while the banner is open, and content is readable.
B. Making a Choice
- Accept all enables the right tags and the signal changes to granted immediately.
- Reject all is as easy to find and click as accept, and keeps non-essential tags off.
- Granular choices work: turning on only analytics enables analytics and nothing else.
- Choice is remembered after reload and on the next page, with no banner reappearing.
- Choice is recorded in your consent log with a timestamp.
C. Changing a Choice
- A persistent entry point (footer link or icon) reopens the preferences on every page.
- Withdrawing consent stops the relevant tags and, where feasible, removes their cookies.
- Changing from reject to accept starts tags without a manual reload.
D. Regions and Languages
- Region rules behave as expected: use a VPN or a test setting to simulate a visitor from each region you serve.
- Language follows the visitor’s language and every button label is translated, with no raw keys visible.
- Right-to-left languages mirror the layout correctly if you serve them.
E. Technical and Platform
- Ad signals reach the ad tags: confirm your consent string or equivalent signal is present on ad requests.
- Mobile browsers display the banner properly in portrait and landscape, and buttons are large enough to tap.
- Accessibility basics: keyboard-only navigation works, focus is visible, and a screen reader announces the dialog.
- Performance: the banner script does not block rendering and does not push the main content down after load.
How to Run It Without Slowing Releases
- Keep the list in your release template so it is never skipped.
- Automate the easy items, such as checking for unexpected requests before consent, with a scripted browser test.
- Assign one owner per release, rotating if needed.
- Keep a record of results; it helps when you must show what you checked and when.
Special Cases Worth Adding
Add items for anything unique to your property: embedded video players, chat widgets, maps, social buttons, and payment or login iframes often load their own trackers. If you ship a mobile app with a web view, repeat sections A to C inside the app as well. Each time an incident teaches you something, add one line to the list so the same mistake cannot return.
What to Do When a Check Fails
Treat a failed consent check as a release blocker for anything that tracks before consent or ignores a rejection. Cosmetic issues, such as a slightly misaligned button, can ship with a ticket. The priority order is: tracking before choice, ignored choice, lost choice, then appearance.
Where FlexyConsent Fits
FlexyConsent’s banner is available in 57 languages and supports Google Consent Mode v2, IAB TCF 2.4, and IAB GPP v1.1, which covers many of the technical items above. The checklist still applies, because your own tags, themes, and scripts decide what actually fires on the page.
Key Takeaways
- Run a fixed consent checklist before every release, not only when the banner changes.
- Check first visit, choices, changes, regions, languages, and mobile.
- Verify tags and cookies in the browser, not just the banner appearance.
- Rank failures: tracking before choice first, cosmetics last.
- Automate what you can and keep a record of each run.