Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

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.

  • Intermediate
  • 15 minutes
  • Examples run with Python 3.14.8, Pyodide 314.0.7 and sql.js 1.14.2
  • By MySmartCoPilot
Free core, Pro depth: 6 of 15 minutes free
Free: Accessibility is a launch requirement, checked against WCAG 2.2 · Thirteen dark patterns, and the honest design for each · Consent that is specific, informed and easy to withdraw · Practise: spot the pattern in three screens. With a pass: 3 in-depth parts and 3 interview answers, about 9 minutes.

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

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:

Contrast and target size of one checkout screen Python · contrast/contrast_check.py
"""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

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

  1. Question 1 of 2 A new sign-in makes people turn a 3D picture until it faces a given way before they enter, with no other way in. Which WCAG 2.2 check does it fail?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: 3.3.8 Accessible authentication, since signing in must not need a puzzle or a memory test

    3.3.8, new in WCAG 2.2 at level AA: no step of signing in may require solving, recalling or transcribing something unless the step offers another way in, such as a passkey, or a mechanism that helps, such as pasting a one-time code. Recognising objects is excepted at AA, but a puzzle that goes beyond recognition is not.

  2. Question 2 of 2 In the program's output, what contrast ratio does the hint under the card field have, to one decimal place?

    Type a number.

    A hint

    Read the third line of the contrast table.

    Show the answer: Question 2 of 2

    Answer: 2.7 to 1 (anything from 2.65 to 2.75 counts)

    2.68:1, below the 4.5:1 that normal text needs under 1.4.3, so the hint fails; the "No thanks, cancel" link, at 1.88:1, fails by even more.

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.

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:

Interactive · message by message Consent for one purpose, from the notice to the withdrawal Step through one person's consent to order updates by text. Each message is one moment of the flow, and the narration says what makes it valid.
Consent for one purpose, from the notice to the withdrawal, step 8 of 8. Messages so far: App to Person: Notice: data, purpose, rights; App to Person: Allow order updates by text?; Person to App: Ticks: order updates only; App to Company systems: Consent: updates, notice v3; Company systems to Person: Text: order on its way; Person to App: Settings: stop updates; App to Company systems: Withdrawn: stop updates; App to Person: Updates stopped.PersonAppCompany systemsNotice: data, purpose, rightsAllow order updates by text?Ticks: order updates onlyConsent: updates, notice v3Text: order on its waySettings: stop updatesWithdrawn: stop updatesUpdates stopped

The drawing shows the whole scene; its 8 steps are listed below.

Every step as text
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Withdrawal. Withdrawing is as easy as consenting was: one switch in the settings, not a call to support or a form by post.
  7. Processing stops. The company stops using the number for that purpose within a reasonable time, and so do the processors that send its texts.
  8. 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

  1. Question 1 of 2 Which of these is valid consent to marketing messages?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: An unticked box, "Send me offers by text", that the person ticks

    Consent must be free, specific, informed, unconditional and unambiguous, with a clear affirmative action, for a specified purpose. An unticked box the person ticks meets each test.

  2. Question 2 of 2 People give consent with one tap in the app. How may they withdraw it?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: With one switch in the app's settings

    The law asks that withdrawing be as easy as consenting. After a withdrawal the company stops processing for that purpose, and orders already paid for are still delivered.

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

  1. Question 1 of 3 A hotel page shows "18 people are looking at this room right now!" on every room, every day. Which pattern is it, and what is the fix?

    Choose one answer.

    Show the answer: Question 1 of 3

    Answer: False urgency; show real demand only where it is true, or nothing

    False urgency implies scarcity or popularity that is not real to push a quick purchase. The honest design shows a true number, or none.

  2. Question 2 of 3 A language app's 14-day trial turns into a yearly charge, with no message before or after the charge. Which pattern is it?

    Choose one answer.

    Show the answer: Question 2 of 3

    Answer: SaaS billing; send a reminder before the first charge

    SaaS billing collects recurring payments as quietly as possible, such as a trial that turns paid without notice. A reminder before the first charge, with a way to cancel, is the honest design.

  3. Question 3 of 3 To buy a single ticket, a museum's site makes you create an account and subscribe to its newsletter. Which pattern is it, and what honest design keeps the newsletter's sign-ups?

    Choose one answer.

    Show the answer: Question 3 of 3

    Answer: Forced action; sell as a guest, and offer the newsletter after the purchase, unticked

    Forced action makes a user sign up, share data or buy something extra to get what they came for. The honest design separates the two decisions, and the sign-ups that remain are people who want the newsletter.

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.

  1. Question 1 of 9 Under WCAG 2.2's target size criterion, how many CSS pixels wide must a target be, at least, unless it is spaced?

    Type a number.

    Show the answer: Question 1 of 9

    Answer: 24 CSS pixels

    2.5.8 Target size (minimum), level AA and new in 2.2: at least 24 by 24 CSS pixels, with exceptions such as enough spacing around a smaller target.

  2. Question 2 of 9 Which of these checks are among the success criteria WCAG 2.2 added? Choose every one.

    Choose every answer that is right.

    Show the answer: Question 2 of 9

    Answer:

    • No puzzle or memory test to sign in
    • Target size of at least 24 by 24 CSS pixels
    • A single-pointer alternative to dragging

    WCAG 2.2 added nine success criteria, among them 2.4.11, 2.5.7, 2.5.8 and 3.3.8 at level AA, and removed 4.1.1 Parsing.

  3. Question 3 of 9 A designer wants the "No thanks, cancel" link pale grey so that people notice the main button. What do you say?
    Show the answer: Question 3 of 9

    Answer: It fails contrast at 1.88:1 and steers people away from cancelling, so make both choices readable and equal

    The pale link fails 1.4.3 and works as interface interference, highlighting one choice and obscuring the other. Both choices readable, both equal in weight, is the honest and accessible design.

  4. Question 4 of 9 What is a dark pattern?

    Choose one answer.

    Show the answer: Question 4 of 9

    Answer: A design that misleads or tricks people into doing what they did not intend

    A dark pattern subverts the user's choice for the platform's gain. Each one inflates a number now and costs trust, refunds and complaints later.

  5. Question 5 of 9 A bus-ticket app shows one price on the search page and adds a booking fee, a "platform fee" and taxes only on the payment screen. Which pattern is it?

    Choose one answer.

    Show the answer: Question 5 of 9

    Answer: Drip pricing

    Drip pricing shows parts of the price late. The honest design includes every fee in the first price shown.

  6. Question 6 of 9 Your checkout misses its quarterly target, and a teammate proposes pre-ticking a paid add-on. What is the strongest answer?

    Choose one answer.

    Show the answer: Question 6 of 9

    Answer: Name the pattern and its cost in refunds and trust, and propose an honest change with a metric for the same goal

    The judgement interviewers look for: the pattern named (basket sneaking), its legal and trust risk, and an honest design with a metric that measures long-term value, such as revenue net of refunds.

  7. Question 7 of 9 Which of these does valid consent require? Choose every one.
    Show the answer: Question 7 of 9

    Answer:

    • A specified purpose, asked separately from others
    • A clear affirmative action, such as ticking a box
    • Withdrawal as easy as giving it

    Free, specific, informed, unconditional and unambiguous, with a clear affirmative action, for a specified purpose, and as easy to withdraw as to give.

  8. Question 8 of 9 A sign-up form has "Share my data with partners" ticked by default. Most people leave it ticked. Is that consent?
    Show the answer: Question 8 of 9

    Answer: No; leaving a pre-ticked box alone is not a clear affirmative action

    An unticked box the person ticks is consent; a ticked box they leave alone is not. The honest design asks for partner sharing separately, unticked, with a plain description of the partners and the purpose.

  9. Question 9 of 9 A telemedicine app asks for one consent covering consultations and access to the phone's contact list. What do you change?
    Show the answer: Question 9 of 9

    Answer: Ask only for the data consultations need; contacts get their own request, if a purpose needs them

    Consent is limited to the personal data necessary for the specified purpose. A contact list is not necessary for a consultation, so it needs its own purpose and its own request, or no request at all.

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.

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).

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.

  • 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

  1. 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?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

  2. 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?

    Model answer, Pro. First step and follow-ups

  3. 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?

    Model answer, Pro. First step and follow-ups

Color Contrast Checker (WCAG 2.2) Check your own text and background colours against the 4.5:1 and 3:1 ratios before the design is built.

Flashcards · 7 cards

Recall it, then check

Say the answer to yourself before you look: recalling it is what makes it stick.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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'.

  6. 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.

  7. 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

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.