Product Manager Interviews Module 2 – Product sense and product design
Accessibility, privacy and dark patterns
The accessibility checks to ask for before a launch, the 13 dark patterns of India's consumer rules with an honest fix for each, and valid consent.
What you will learn
- Name the accessibility checks a product manager asks for before a launch
- Identify dark patterns in a flow and design an honest alternative
- Design a consent flow that meets the DPDP Act's consent rules
- Answer an interview question that trades growth against user trust
Before you start
What you’ll learn · Before you start
What you will learn
- Name the accessibility checks a product manager asks for before a launch
- Identify dark patterns in a flow and design an honest alternative
- Design a consent flow that meets the DPDP Act's consent rules
- Answer an interview question that trades growth against user trust
Before you start
On this page
WCAG 2.2, the W3C’s accessibility standard, asks that a tap target be at least 24 by 24 CSS pixels. India’s consumer authority names 13 dark patterns that platforms must not use, and India’s data law accepts consent only when it is specific, informed and given by a clear action. Accessibility, dark patterns and privacy are product decisions first, and interviewers use them to test whether you would trade users’ trust for a short-term number.
Below: the checks to ask for before a launch, the 13 patterns with an honest design for each, and a consent flow step by step.
Accessibility is a launch requirement, checked against WCAG 2.2
An app that a screen-reader user cannot pay in has a bug as real as a crash. WCAG: Web Content Accessibility Guidelines: the W3C's standard of testable success criteria for accessible web content, at three levels of conformance, A, AA and AAA. WCAG 2.2 added nine criteria to version 2.1. 2.2 has three levels of conformance, A, AA and AAA; set AA as the launch bar, since it holds the contrast and target-size criteria. Version 2.2 added nine success criteria. These are the checks a product manager asks for:
| Check | WCAG 2.2 |
|---|---|
| Images and icons have text alternatives | 1.1.1 (A) |
| Everything works by keyboard alone | 2.1.1 (A) |
| The item in focus is never fully hidden | 2.4.11 (AA, new) |
| Text contrast is at least 4.5:1, or 3:1 when large | 1.4.3 (AA) |
| Targets are at least 24 by 24 CSS pixels, or spaced | 2.5.8 (AA, new) |
| Dragging has a single-pointer alternative | 2.5.7 (AA, new) |
| Signing in needs no puzzle or memory test, or offers another way | 3.3.8 (AA, new) |
Contrast and target size can be checked from the design, before any code, with the standard’s own formulas:
"""Two WCAG 2.2 checks a product manager can run on a design before it is built: text contrast and target size.
Contrast follows the standard's definitions: relative luminance of each sRGB colour, then (L1 + 0.05) / (L2 + 0.05)
with L1 the lighter colour. Text needs 4.5:1, large text 3:1 (1.4.3, level AA); a pointer target needs 24 by 24 CSS
pixels unless it is spaced away from other targets (2.5.8, level AA). The colours and sizes are an invented
subscription app's checkout screen.
"""
def luminance(hex_colour):
"""Relative luminance of an sRGB colour such as "#2e7d32" (WCAG 2.2 definition)."""
channels = [int(hex_colour[i : i + 2], 16) / 255 for i in (1, 3, 5)]
r, g, b = (c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055) ** 2.4 for c in channels)
return 0.2126 * r + 0.7152 * g + 0.0722 * b
def contrast(a, b):
lighter, darker = sorted((luminance(a), luminance(b)), reverse=True)
return (lighter + 0.05) / (darker + 0.05)
TEXT = [ # (what, text colour, background, large text?)
("price and plan names", "#1f1f1f", "#ffffff", False),
("Subscribe button label", "#ffffff", "#2e7d32", False),
("hint under the card field", "#9e9e9e", "#ffffff", False),
('"No thanks, cancel" link', "#bdbdbd", "#ffffff", False),
("page heading", "#767676", "#ffffff", True),
]
print("Text contrast (needs 4.5:1, or 3:1 for large text)")
for what, fg, bg, large in TEXT:
ratio = contrast(fg, bg)
need = 3.0 if large else 4.5
print(f" {what:27} {ratio:5.2f}:1 {'passes' if ratio >= need else 'FAILS'}")
TARGETS = [("Subscribe button", 48, 320), ("close icon of the offer", 16, 16), ("plan radio button", 24, 24)]
print("\nTarget size (needs 24 by 24 CSS pixels, or spacing)")
for what, height, width in TARGETS:
ok = height >= 24 and width >= 24
print(f" {what:27} {width} by {height} {'passes' if ok else 'FAILS unless spaced'}") Output
Text contrast (needs 4.5:1, or 3:1 for large text) price and plan names 16.48:1 passes Subscribe button label 5.13:1 passes hint under the card field 2.68:1 FAILS "No thanks, cancel" link 1.88:1 FAILS page heading 4.54:1 passes Target size (needs 24 by 24 CSS pixels, or spacing) Subscribe button 320 by 48 passes close icon of the offer 16 by 16 FAILS unless spaced plan radio button 24 by 24 passes
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 contrast_check.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
The card-field hint at 2.68:1, the “No thanks, cancel” link at 1.88:1 and the 16-pixel close icon fail. The pale cancel link is also a dark pattern, as the next section shows.
India's rules on accessible products
GIGW 3.0 sets the guidelines for India’s government websites and apps. The Rights of Persons with Disabilities Act asks service providers, government or private, to follow the accessibility rules made under its section 40, within two years of those rules.
Checkpoint
Check: The accessibility checks before a launch
Thirteen dark patterns, and the honest design for each
A dark pattern: A design that misleads or tricks people into doing something they did not intend, such as buying more, sharing personal data or staying subscribed, by subverting their choice. India's consumer protection rules specify 13 of them. misleads or tricks people into doing what they did not intend, such as buying more, sharing data or staying subscribed. It inflates a number now and costs trust and refunds later. Here are 13 of them, with an honest design for an invented meal-kit app:
| Pattern | What it looks like | The honest design |
|---|---|---|
| False urgency | “Only 2 left!” when stock is plentiful | Real stock, or no count |
| Basket sneaking | An add-on or a donation added unasked | Offered unticked, with its price |
| Confirm shaming | “No, I don’t care about eating well” | “No, thanks” |
| Forced action | A newsletter sign-up required to buy | Buying without it |
| Subscription trap | Five screens and a call to cancel | Cancelling as fast as joining |
| Interface interference | A pale “No” beside a bright “Yes” | Two equal choices |
| Bait and switch | A cheap kit shown, a dearer one charged | What was shown, or “sold out” |
| Drip pricing | Fees shown only at the last step | The full price from the first |
| Disguised advertisement | A sponsored recipe styled as editorial | Labelled as an advertisement |
| Nagging | A notification prompt at every visit | Asked once, the answer kept |
| Trick question | “Untick to not stop receiving offers” | One plain question |
| SaaS billing | A trial turning paid without a word | A reminder before the charge |
| Rogue malware | A fake virus alert selling a cleaner | No scare screens at all |
India's list of dark patterns
These are the 13 patterns that the Central Consumer Protection Authority specifies for platforms offering goods or services in India, and for advertisers and sellers.
drip pricing: Revealing parts of a price late, such as fees that appear only at payment, or charging more than the amount shown at checkout. It is one of the dark patterns India's consumer protection rules specify. shows how a pattern hides in plain sight: each fee may be fair, but revealing them one step at a time makes the first price untrue.
One test for every screen
Ask whether the user would choose the same if every option were shown equally, with its full price, on the first step. If not, the screen is steering them.
Consent that is specific, informed and easy to withdraw
Privacy in a product starts with what it asks for and how: each purpose asked separately, in plain words, a clear action as the only yes, and withdrawal as easy as agreement. Step through one consent:
The drawing shows the whole scene; its 8 steps are listed below.
Every step as text
- The notice. Before asking, the app says in plain language which personal data it wants and for what, how to withdraw consent and how to complain to the Data Protection Board, in English or a language of the Eighth Schedule.
- One purpose at a time. Each purpose gets its own choice, not ticked in advance. Folding advertising into the order flow would make consent neither specific nor unconditional.
- A clear action. The person ticks the box. Consent is a clear affirmative action: silence, a pre-ticked box or carrying on scrolling is not consent.
- The record. The app records what was agreed and against which version of the notice, because the company must be able to prove that notice was given and consent obtained.
- Use within the purpose. The phone number given for order updates is used for order updates and nothing else, such as advertising, which would need its own consent.
- Withdrawal. Withdrawing is as easy as consenting was: one switch in the settings, not a call to support or a form by post.
- Processing stops. The company stops using the number for that purpose within a reasonable time, and so do the processors that send its texts.
- The person sees it. The app confirms that the updates have stopped. An order already placed and paid for is still delivered: withdrawal stops the use, not the service already bought.
The DPDP Act's rules on consent
Under the Digital Personal Data Protection Act, consent must be free, specific, informed, unconditional and unambiguous, and be given by a clear affirmative action, for the data a specified purpose needs (section 6). A notice comes with or before each request (section 5), and both can be read in English or a language of the Eighth Schedule.
That is valid consent (DPDP Act): Consent that, under India's Digital Personal Data Protection Act, is free, specific, informed, unconditional and unambiguous, given by a clear affirmative action for a specified purpose and limited to the data that purpose needs.; a pre-ticked box, a bundle of purposes or a withdrawal hidden in a support form is not, however many people it collects.
Checkpoint
Check: Valid consent, and withdrawing it
Practise: spot the pattern in three screens
Each screen is described in words. Name the pattern, then pick the honest fix.
Checkpoint
Spot the pattern
After the three screens, the self-check keeps asking about the idea where your answers have been weakest.
Practice that adapts to you
Practise this lesson
9 questions about 6 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
A checkout and a cancel flow audited and rebuilt Pro: opens with a Pro, Premium or Ultimate pass
Two invented flows checked step by step against the 13 patterns and rebuilt, each with the metric that should replace the one its patterns inflated.
In this part:
- Auditing a ticket-booking checkout, step by step
- Auditing a fitness app’s trial and cancellation
- The numbers to report once the patterns are gone
about 4 minutes
Opening this part with your pass…
This part opens with any MySmartCoPilot pass.
- Pro pass · 1 week₹79$2.99
- 30 days₹179$5.99
- 1 year₹1,699$45
One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.
Passes can’t be bought right now, so this part can’t be opened at the moment. The free part above stands on its own. If you have a pass, enter your licence key.
It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).
Consent for an app that families share Pro: opens with a Pro, Premium or Ultimate pass
An invented photo-sharing app for families, which some members under 18 join, worked through the Act’s rules for children: who consents, what the app must never do for them, and the questions a product manager takes to legal.
In this part:
- Who consents when a member is under 18
- What the product changes for a child’s account
- The questions a product manager takes to legal
- Cases the design must handle
1 diagram · about 5 minutes
Opening this part with your pass…Pro part. It opens with the same pass as the part above.
Accessibility acceptance criteria a product manager writes Pro: opens with a Pro, Premium or Ultimate pass
The criteria a product manager writes for one screen, an invented bus app’s seat selection and sign-in, against WCAG 2.2 AA, and the rule that decides whether a gap blocks the launch.
In this part:
- Criteria for a seat-selection and sign-in screen
- The rule for a gap at launch
- Testing the criteria with people who use assistive technology
about 3 minutes
Opening this part with your pass…Pro part. It opens with the same pass as the part above.
Interview questions
-
Mid to staff
Your subscription product is behind its growth target. A teammate proposes making cancellation take five screens. How do you respond, and what do you propose instead?
-
Fresher to senior
A travel-booking checkout adds travel insurance by default. What is wrong with it, and how would you redesign it while protecting revenue?
-
Mid to senior
You are launching a new payment screen. Which accessibility checks do you require before launch, and how do you decide whether a gap blocks the launch?
Flashcards · 7 cards
Recall it, then check
Say the answer to yourself before you look: recalling it is what makes it stick.
-
Which WCAG 2.2 conformance level should a product set as its launch bar, and why?
Level AA, the middle of A, AA and AAA, because it holds the contrast and target-size criteria. An app that a screen-reader user cannot pay in has a bug as real as a crash.
-
Name four accessibility checks a product manager asks for before a launch.
Text alternatives for images and icons (1.1.1); the whole flow usable from a keyboard (2.1.1); a 4.5:1 contrast ratio for text, or 3:1 if it is large (1.4.3); and tap targets no smaller than 24 by 24 CSS pixels unless spaced apart (2.5.8). A sign-in with no puzzle or memory test (3.3.8) is a fifth.
-
What is a dark pattern, and why does it hurt the product that uses it?
A screen built to push people into a choice they would not otherwise make: an extra purchase, more data shared, a subscription they meant to leave. It lifts a number today and costs trust and refunds later, and India's consumer authority lists 13 such patterns that platforms must not use.
-
What is drip pricing, and what is the honest design?
Revealing fees one step at a time, so that the first price shown is untrue even when each fee is fair. The honest design shows the full price from the very first step.
-
What are the honest alternatives to confirm shaming, a subscription trap and interface interference?
A plain 'No, thanks' instead of a guilt-laden refusal; cancelling as quickly as joining; and two equally prominent choices instead of a pale 'No' beside a bright 'Yes'.
-
What quick test tells you whether a screen is steering people?
Ask whether the user would still choose the same if every option were shown equally, with its full price, on the first step. If not, the screen is steering them.
-
What does valid consent require under India's data protection law?
The Act asks for consent given freely, for a specific purpose, informed, unconditional and unambiguous, signalled by a clear affirmative action and covering only the data that purpose needs, with a notice before or alongside each request. Ask for one purpose at a time and make withdrawal as easy as agreeing; pre-ticked boxes and bundled purposes do not count.
Key takeaways
- Accessibility is a launch requirement: set WCAG 2.2 level AA as the bar, and check contrast and target size from the design.
- Each dark pattern inflates a number now and costs trust later, and each has an honest design, often one change.
- Privacy starts with valid consent: one purpose at a time, a clear action, and withdrawal as easy as agreement.
Terms in this lesson
- dark pattern
- A design that misleads or tricks people into doing something they did not intend, such as buying more, sharing personal data or staying subscribed, by subverting their choice. India's consumer protection rules specify 13 of them.
- drip pricing
- Revealing parts of a price late, such as fees that appear only at payment, or charging more than the amount shown at checkout. It is one of the dark patterns India's consumer protection rules specify.
- valid consent (DPDP Act)
- Consent that, under India's Digital Personal Data Protection Act, is free, specific, informed, unconditional and unambiguous, given by a clear affirmative action for a specified purpose and limited to the data that purpose needs.
- WCAG
- Web Content Accessibility Guidelines: the W3C's standard of testable success criteria for accessible web content, at three levels of conformance, A, AA and AAA. WCAG 2.2 added nine criteria to version 2.1.
References
- Web Content Accessibility Guidelines (WCAG) 2.2 (World Wide Web Consortium (W3C))
- What's new in WCAG 2.2 (W3C Web Accessibility Initiative)
- Guidelines for Indian Government Websites and Apps (GIGW 3.0) (National Informatics Centre, Ministry of Electronics and Information Technology)
- The Rights of Persons with Disabilities Act and Rules (Department of Empowerment of Persons with Disabilities)
- Guidelines for Prevention and Regulation of Dark Patterns (Central Consumer Protection Authority)
- The Digital Personal Data Protection Act (Ministry of Electronics and Information Technology)
- The Digital Personal Data Protection Rules (Ministry of Electronics and Information Technology)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress