{"name":"Digital fairness pattern dataset","taxonomyId":"flowlane.dark-pattern-library","taxonomyVersion":"1.0.0","license":"Original editorial data; source rights remain with publishers","lastReviewed":"2026-09-14","reviewScope":"Updated institutional and research context. Earlier detailed legal mappings retain the full-text access limits described in the dated update.","patternCount":39,"patterns":[{"title":"Account deletion obstruction: definition, examples and fairer design","slug":"account-deletion-obstruction","preferredName":"Account deletion obstruction","directAnswer":"The label “Account deletion obstruction” describes this recurring design mechanism: deleting an account is unavailable, disguised as another outcome or burdened by unnecessary barriers. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Deleting an account is unavailable, disguised as another outcome or burdened by unnecessary barriers. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["immortal account","undeletable account"],"category":"Obstruction","family":"Obstruction","journeyStages":["Account Management"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Social account settings","scenario":"A fictional platform labels a control “Delete account”, but the confirmation only hides the profile and leaves data and reactivation available indefinitely.","harm":"A person may reasonably believe the account and associated data were deleted when only visibility changed."},{"type":"Illustrative example","context":"Shopping account","scenario":"A fictional retailer places account deletion behind six help pages and requires a support ticket containing an order number even for users who never ordered.","harm":"People may be unable to exercise the represented account control because of irrelevant information and route barriers."}],"howItWorks":"Deleting an account is unavailable, disguised as another outcome or burdened by unnecessary barriers. The deletion route is hidden, delayed or conditioned on unnecessary information even after the user has authenticated and stated the irreversible account outcome.","warningSigns":["The user seeks permanent account deletion.","The observed route is missing, materially harder than account creation or produces only deactivation without clear disclosure.","The account persists after apparent completion or the journey cannot complete."],"harms":["A person may reasonably believe the account and associated data were deleted when only visibility changed.","People may be unable to exercise the represented account control because of irrelevant information and route barriers."],"legitimateUses":["A similar design should not be classified this way where legally required record retention clearly distinguished from account access.","A similar design should not be classified this way where reasonable authentication.","A similar design should not be classified this way where temporary technical outage with a documented recovery path."],"problematicUi":{"label":"Delete account","copy":"Delete account The resulting state is only temporary deactivation, disclosed after the action. Delete now Unconfirmed state: Delete now","annotations":["In “Deactivation presented as deletion”, this element shows how account deletion obstruction can shape the decision."]},"improvedUi":{"label":"Choose deactivation or deletion","copy":"Choose deactivation or deletion Each option states what remains, for how long and whether recovery is possible. Permanently delete account Saved state: Permanently delete account Persisted account state The saved state behind “Permanently delete account” remains consistent after refresh and across supported channels.","annotations":["In “Deactivation presented as deletion”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"account-deletion-obstruction-scenario-1","title":"Deactivation presented as deletion","context":"Social account settings","journeyStage":"Account Management","summary":"A fictional platform labels a control “Delete account”, but the confirmation only hides the profile and leaves data and reactivation available indefinitely.","problematic":{"label":"Delete account","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"Delete account"},{"id":"problematic-2-body","type":"text","text":"The resulting state is only temporary deactivation, disclosed after the action.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Delete now","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Delete now","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Deactivation presented as deletion”, this element shows how account deletion obstruction can shape the decision."}]},"neutral":{"label":"Choose deactivation or deletion","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose deactivation or deletion"},{"id":"neutral-2-body","type":"text","text":"Each option states what remains, for how long and whether recovery is possible.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Permanently delete account","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Permanently delete account","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Permanently delete account” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Deactivation presented as deletion”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this social account settings example, the obstacle is: “The resulting state is only temporary deactivation, disclosed after the action.” Evidence should show whether the alternative remains usable and whether “Permanently delete account” reaches the represented state. A person may reasonably believe the account and associated data were deleted when only visibility changed.","fairDesignPrinciple":"Separate deactivation from deletion and state retention, timing, recovery and consequences before confirmation.","reviewPrompts":["How many steps, waits and channel changes separate “Delete now” from the completed social account settings outcome?","Test the control across refresh, device and account states; is “The user seeks permanent account deletion” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “Legally required record retention clearly distinguished from account access” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side social account settings interface showing “Delete account” and the clearer alternative “Choose deactivation or deletion”.","provenance":"Original hypothetical social account settings example created for this library; no real business, product or interface is depicted."},{"id":"account-deletion-obstruction-scenario-2","title":"Deletion buried behind an unsupported ticket","context":"Shopping account","journeyStage":"Account Management","summary":"A fictional retailer places account deletion behind six help pages and requires a support ticket containing an order number even for users who never ordered.","problematic":{"label":"Contact support to delete","layout":"cancellation-flow","elements":[{"id":"problematic-1-heading","type":"heading","text":"Contact support to delete"},{"id":"problematic-2-body","type":"text","text":"The form rejects users without an order number and links back to the same help article.","tone":"warning"},{"id":"problematic-3-step","type":"step","label":"Blocking step: Enter order number","status":"current"},{"id":"problematic-4-step","type":"step","label":"Obscured outcome: Request deletion","status":"current"}],"annotations":[{"targetId":"problematic-4-step","text":"In “Deletion buried behind an unsupported ticket”, this element shows how account deletion obstruction can shape the decision."}]},"neutral":{"label":"Delete your account","layout":"cancellation-flow","elements":[{"id":"neutral-1-heading","type":"heading","text":"Delete your account"},{"id":"neutral-2-body","type":"text","text":"A direct settings route uses account authentication and explains completion timing.","tone":"default"},{"id":"neutral-3-step","type":"step","label":"Completion step: Request deletion","status":"completed"},{"id":"neutral-4-step","type":"step","label":"Recorded outcome: Enter order number","status":"completed"},{"id":"neutral-5-badge","type":"badge","text":"Request recorded: Request deletion","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Deletion buried behind an unsupported ticket”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this shopping account example, the obstacle is: “The form rejects users without an order number and links back to the same help article.” Evidence should show whether the alternative remains usable and whether “Request deletion” reaches the represented state. People may be unable to exercise the represented account control because of irrelevant information and route barriers.","fairDesignPrinciple":"Put deletion in normal settings, require only necessary verification and offer a usable fallback for inaccessible accounts.","reviewPrompts":["How many steps, waits and channel changes separate “Enter order number” from the completed shopping account outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “The observed route is missing, materially harder than account creation or produces only deactivation without clear disclosure”?","Measure the same task through the clearest available route: does the effort difference persist once “reasonable authentication” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side shopping account interface showing “Contact support to delete” and the clearer alternative “Delete your account”.","provenance":"Original hypothetical shopping account example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Offer a clear self-service deletion route, distinguish deletion from deactivation, and confirm the resulting state.","whyProblematic":"Deleting an account is unavailable, disguised as another outcome or burdened by unnecessary barriers. The deletion route is hidden, delayed or conditioned on unnecessary information even after the user has authenticated and stated the irreversible account outcome. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The user seeks permanent account deletion.","The observed route is missing, materially harder than account creation or produces only deactivation without clear disclosure.","The account persists after apparent completion or the journey cannot complete.","Exclude or qualify the label where legally required record retention clearly distinguished from account access.","Exclude or qualify the label where reasonable authentication.","Exclude or qualify the label where temporary technical outage with a documented recovery path."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Delete now” from the completed social account settings outcome?","Test the control across refresh, device and account states; is “The user seeks permanent account deletion” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “Legally required record retention clearly distinguished from account access” is accounted for?","How many steps, waits and channel changes separate “Enter order number” from the completed shopping account outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “The observed route is missing, materially harder than account creation or produces only deactivation without clear disclosure”?","Measure the same task through the clearest available route: does the effort difference persist once “reasonable authentication” is accounted for?","Which complete journey evidence supports or contradicts the account deletion obstruction classification?"],"evidence":["Versioned captures of the Account Management states before, during and after the relevant decision","Configuration, content and event records supporting the observed account deletion obstruction mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence"],"related":["obstructed-alternative","cancellation-friction","privacy-maze"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side social account settings interface showing “Delete account” and the clearer alternative “Choose deactivation or deletion”.","provenance":"Original hypothetical social account settings example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Activity messages: definition, examples and fairer design","slug":"activity-messages","preferredName":"Activity messages","directAnswer":"The label “Activity messages” describes this recurring design mechanism: claims about recent or current actions by other users are used to steer the decision, particularly where authenticity, timing or relevance is unsupported. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Claims about recent or current actions by other users are used to steer the decision, particularly where authenticity, timing or relevance is unsupported. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["recent activity","live purchase notification"],"category":"Social proof","family":"Social proof","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Product page","scenario":"A fictional store displays “12 people bought this in the last hour” using a random number unrelated to completed orders.","harm":"Unsupported activity can create false confidence and urgency around the purchase."},{"type":"Illustrative example","context":"Course landing page","scenario":"A fictional course page rotates messages such as “Mia from Berlin just enrolled” using invented names and locations rather than completed enrolments.","harm":"A visitor may infer genuine recent participation and social confidence from activity that never occurred."}],"howItWorks":"Claims about recent or current actions by other users are used to steer the decision, particularly where authenticity, timing or relevance is unsupported. Purported recent behaviour is used as live social evidence even though the event, person, count or period does not correspond to the represented activity.","warningSigns":["The message describes actions by other people as current or recent.","It appears near a transactional choice or repeatedly interrupts it.","Provenance or freshness must be externally verified before alleging falsity."],"harms":["Unsupported activity can create false confidence and urgency around the purchase.","A visitor may infer genuine recent participation and social confidence from activity that never occurred."],"legitimateUses":["A similar design should not be classified this way where static aggregate popularity claim.","A similar design should not be classified this way where a named testimonial whose speaker, relationship and non-live character are clearly stated.","A similar design should not be classified this way where verifiable operational status unrelated to persuasion.","A similar design should not be classified this way where a clearly historical activity figure whose period and non-live character are stated beside it."],"problematicUi":{"label":"Popular right now","copy":"Popular right now A generated number is presented as recent customer activity. 12 bought this hour Claim basis No supporting population, period, inventory or offer event is presented with this message.","annotations":["In “Randomised recent-purchase notification”, this element shows how activity messages can shape the decision."]},"improvedUi":{"label":"Verified activity information","copy":"Verified activity information The message states its period and is shown only when live order data supports it. 8 purchases in the past 24 hours Claim basis The relevant population, period, inventory or offer state is presented with the message. View the source and period for “8 purchases in the past 24 hours”","annotations":["In “Randomised recent-purchase notification”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"activity-messages-scenario-1","title":"Randomised recent-purchase notification","context":"Product page","journeyStage":"Pricing","summary":"A fictional store displays “12 people bought this in the last hour” using a random number unrelated to completed orders.","problematic":{"label":"Popular right now","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Popular right now"},{"id":"problematic-2-body","type":"text","text":"A generated number is presented as recent customer activity.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"12 bought this hour","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Randomised recent-purchase notification”, this element shows how activity messages can shape the decision."}]},"neutral":{"label":"Verified activity information","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Verified activity information"},{"id":"neutral-2-body","type":"text","text":"The message states its period and is shown only when live order data supports it.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"8 purchases in the past 24 hours","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “8 purchases in the past 24 hours”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Randomised recent-purchase notification”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The interface asks the user to rely on other people’s behaviour or approval. The cue “12 bought this hour” has persuasive meaning only if its population, period, metric and relationship match the represented claim. The panel instead says: “A generated number is presented as recent customer activity.” Unsupported activity can create false confidence and urgency around the purchase.","fairDesignPrinciple":"Use activity messages only when they are accurate, timely, relevant and supported by a defined data source.","reviewPrompts":["Which source record substantiates “12 bought this hour”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The message describes actions by other people as current or recent”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “Static aggregate popularity claim”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side product page interface showing “Popular right now” and the clearer alternative “Verified activity information”.","provenance":"Original hypothetical product page example created for this library; no real business, product or interface is depicted."},{"id":"activity-messages-scenario-2","title":"Fabricated named signup notification","context":"Course landing page","journeyStage":"Pricing","summary":"A fictional course page rotates messages such as “Mia from Berlin just enrolled” using invented names and locations rather than completed enrolments.","problematic":{"label":"New learner joined","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"New learner joined"},{"id":"problematic-2-body","type":"text","text":"Invented names and cities are presented as completed enrolment events.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Mia from Berlin enrolled","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Fabricated named signup notification”, this element shows how activity messages can shape the decision."}]},"neutral":{"label":"Course participation","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Course participation"},{"id":"neutral-2-body","type":"text","text":"A verified aggregate states its period without fabricating an individual event.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"124 enrolments this month","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “124 enrolments this month”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Fabricated named signup notification”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The interface asks the user to rely on other people’s behaviour or approval. The cue “Mia from Berlin enrolled” has persuasive meaning only if its population, period, metric and relationship match the represented claim. The panel instead says: “Invented names and cities are presented as completed enrolment events.” A visitor may infer genuine recent participation and social confidence from activity that never occurred.","fairDesignPrinciple":"Show only verified activity with a defined period and privacy-safe aggregation, or remove the notification.","reviewPrompts":["Which source record substantiates “Mia from Berlin enrolled”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It appears near a transactional choice or repeatedly interrupts it”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “named testimonial”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side course landing page interface showing “New learner joined” and the clearer alternative “Course participation”.","provenance":"Original hypothetical course landing page example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use accurate, auditable and appropriately time-bounded activity data and explain what the metric represents.","whyProblematic":"Claims about recent or current actions by other users are used to steer the decision, particularly where authenticity, timing or relevance is unsupported. Purported recent behaviour is used as live social evidence even though the event, person, count or period does not correspond to the represented activity. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The message describes actions by other people as current or recent.","It appears near a transactional choice or repeatedly interrupts it.","Provenance or freshness must be externally verified before alleging falsity.","Exclude or qualify the label where static aggregate popularity claim.","Exclude or qualify the label where a named testimonial whose speaker, relationship and non-live character are clearly stated.","Exclude or qualify the label where verifiable operational status unrelated to persuasion.","Exclude or qualify the label where a clearly historical activity figure whose period and non-live character are stated beside it."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which source record substantiates “12 bought this hour”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The message describes actions by other people as current or recent”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “Static aggregate popularity claim”?","Which source record substantiates “Mia from Berlin enrolled”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It appears near a transactional choice or repeatedly interrupts it”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “named testimonial”?","Which complete journey evidence supports or contradicts the activity messages classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed activity messages mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message"],"related":["testimonials-or-endorsements","popularity-claims"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side product page interface showing “Popular right now” and the clearer alternative “Verified activity information”.","provenance":"Original hypothetical product page example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Automatic attention capture: definition, examples and fairer design","slug":"automatic-attention-capture","preferredName":"Automatic attention capture","directAnswer":"The label “Automatic attention capture” describes this recurring design mechanism: content continues automatically or lacks meaningful stopping cues, reducing deliberate control over time and attention. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Content continues automatically or lacks meaningful stopping cues, reducing deliberate control over time and attention. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["autoplay","infinite scroll","continuous consumption"],"category":"Forced action","family":"Forced action","journeyStages":["Account Management","Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Short-video feed","scenario":"A fictional video service starts another clip when a user’s chosen twenty-minute limit is reached and hides the leave action behind a full-screen recommendation.","harm":"The interface weakens a prior decision to stop and can extend use beyond the user’s intention."},{"type":"Illustrative example","context":"Shopping discovery feed","scenario":"A fictional marketplace continuously inserts new products and removes pagination, position and viewed-item markers while promotional prompts follow the shopper.","harm":"A shopper can lose track of time, prior comparisons and where a considered choice occurred."}],"howItWorks":"Content continues automatically or lacks meaningful stopping cues, reducing deliberate control over time and attention. Automatic continuation removes natural stopping cues and overrides a person’s effort to pause, leave or keep track of position and elapsed use.","warningSigns":["New content starts or loads without an affirmative request.","Stopping or disabling continuation is absent, hidden or non-persistent.","The mechanism plausibly extends use beyond the user's intended goal."],"harms":["The interface weakens a prior decision to stop and can extend use beyond the user’s intention.","A shopper can lose track of time, prior comparisons and where a considered choice occurred."],"legitimateUses":["A similar design should not be classified this way where user-initiated playlist or explicitly enabled autoplay with a persistent control.","A similar design should not be classified this way where ordinary pagination that loads another defined page only after a deliberate request.","A similar design should not be classified this way where content that advances only after a deliberate user request and preserves a visible stopping point."],"problematicUi":{"label":"One more video","copy":"One more video The next clip starts automatically while the exit sits behind the recommendation. Keep watching Leave now","annotations":["In “Autoplay overrides a session limit”, this element shows how automatic attention capture can shape the decision."]},"improvedUi":{"label":"Your 20-minute limit is reached","copy":"Your 20-minute limit is reached Playback pauses and stopping is the first available action. Leave now Keep watching What happens next Activating “Leave now” produces the outcome stated on the control.","annotations":["In “Autoplay overrides a session limit”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"automatic-attention-capture-scenario-1","title":"Autoplay overrides a session limit","context":"Short-video feed","journeyStage":"Account Management","summary":"A fictional video service starts another clip when a user’s chosen twenty-minute limit is reached and hides the leave action behind a full-screen recommendation.","problematic":{"label":"One more video","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"One more video"},{"id":"problematic-2-body","type":"text","text":"The next clip starts automatically while the exit sits behind the recommendation.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Keep watching","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Leave now","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Autoplay overrides a session limit”, this element shows how automatic attention capture can shape the decision."}]},"neutral":{"label":"Your 20-minute limit is reached","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Your 20-minute limit is reached"},{"id":"neutral-2-body","type":"text","text":"Playback pauses and stopping is the first available action.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Leave now","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Keep watching","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “Leave now” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Autoplay overrides a session limit”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the account management goal. The panel states: “The next clip starts automatically while the exit sits behind the recommendation.” Reviewers need to establish whether “Keep watching” is necessary for the selected task or pressures the user into a separable action. The interface weakens a prior decision to stop and can extend use beyond the user’s intention.","fairDesignPrinciple":"Pause at the selected limit and show stable choices to leave, extend once or change the setting.","reviewPrompts":["What functional need makes “Keep watching” necessary for the short-video feed goal, and can that need be met with less disclosure or commitment?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “New content starts or loads without an affirmative request”?","Could the stated purpose make this dependency genuinely necessary under the boundary “User-initiated playlist or explicitly enabled autoplay with a persistent control”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side short-video feed interface showing “One more video” and the clearer alternative “Your 20-minute limit is reached”.","provenance":"Original hypothetical short-video feed example created for this library; no real business, product or interface is depicted."},{"id":"automatic-attention-capture-scenario-2","title":"Infinite catalogue without progress cues","context":"Shopping discovery feed","journeyStage":"Pricing","summary":"A fictional marketplace continuously inserts new products and removes pagination, position and viewed-item markers while promotional prompts follow the shopper.","problematic":{"label":"More picks loaded for you","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"More picks loaded for you"},{"id":"problematic-2-body","type":"text","text":"The list has no end, position or record of products already compared.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Continue browsing","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Continue browsing","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Infinite catalogue without progress cues”, this element shows how automatic attention capture can shape the decision."}]},"neutral":{"label":"20 products reviewed","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"20 products reviewed"},{"id":"neutral-2-body","type":"text","text":"The shopper can stop, save the set or load another defined group.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Save and stop","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Save and stop","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Save and stop” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Infinite catalogue without progress cues”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the pricing goal. The panel states: “The list has no end, position or record of products already compared.” Reviewers need to establish whether “Continue browsing” is necessary for the selected task or pressures the user into a separable action. A shopper can lose track of time, prior comparisons and where a considered choice occurred.","fairDesignPrinciple":"Provide meaningful batches, a visible position and a reliable way to pause, save or return to compared items.","reviewPrompts":["What functional need makes “Continue browsing” necessary for the shopping discovery feed goal, and can that need be met with less disclosure or commitment?","Test the control across refresh, device and account states; is “Stopping or disabling continuation is absent, hidden or non-persistent” still observable after persistence is considered?","Could the stated purpose make this dependency genuinely necessary under the boundary “ordinary pagination”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side shopping discovery feed interface showing “More picks loaded for you” and the clearer alternative “20 products reviewed”.","provenance":"Original hypothetical shopping discovery feed example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Require deliberate continuation or provide clear, persistent pause and disable controls with natural stopping cues.","whyProblematic":"Content continues automatically or lacks meaningful stopping cues, reducing deliberate control over time and attention. Automatic continuation removes natural stopping cues and overrides a person’s effort to pause, leave or keep track of position and elapsed use. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["New content starts or loads without an affirmative request.","Stopping or disabling continuation is absent, hidden or non-persistent.","The mechanism plausibly extends use beyond the user's intended goal.","Exclude or qualify the label where user-initiated playlist or explicitly enabled autoplay with a persistent control.","Exclude or qualify the label where ordinary pagination that loads another defined page only after a deliberate request.","Exclude or qualify the label where content that advances only after a deliberate user request and preserves a visible stopping point."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["What functional need makes “Keep watching” necessary for the short-video feed goal, and can that need be met with less disclosure or commitment?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “New content starts or loads without an affirmative request”?","Could the stated purpose make this dependency genuinely necessary under the boundary “User-initiated playlist or explicitly enabled autoplay with a persistent control”, and what product evidence would demonstrate that necessity?","What functional need makes “Continue browsing” necessary for the shopping discovery feed goal, and can that need be met with less disclosure or commitment?","Test the control across refresh, device and account states; is “Stopping or disabling continuation is absent, hidden or non-persistent” still observable after persistence is considered?","Could the stated purpose make this dependency genuinely necessary under the boundary “ordinary pagination”, and what product evidence would demonstrate that necessity?","Which complete journey evidence supports or contradicts the automatic attention capture classification?"],"evidence":["Versioned captures of the Account Management and Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed automatic attention capture mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence"],"related":["forced-registration","forced-action-and-data-disclosure","contact-harvesting-and-coerced-referrals"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side short-video feed interface showing “One more video” and the clearer alternative “Your 20-minute limit is reached”.","provenance":"Original hypothetical short-video feed example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Bait and switch: definition, examples and fairer design","slug":"bait-and-switch","preferredName":"Bait and switch","directAnswer":"The label “Bait and switch” describes this recurring design mechanism: the user selects a represented action or offer but receives a materially different outcome that favours the business. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"The user selects a represented action or offer but receives a materially different outcome that favours the business. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["outcome switch","misdirected action"],"category":"Sneaking","family":"Sneaking","journeyStages":["Account Management","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Account document download","scenario":"A fictional account page labels a prominent control “Download document”, but it launches an optional browser-extension installer instead.","harm":"The user receives a materially different action from the one represented and may install unwanted software."},{"type":"Illustrative example","context":"Travel booking","scenario":"A fictional booking flow records a basic fare selection but the final action purchases a premium flexible fare without a new price-and-product confirmation.","harm":"The traveller may buy a different, more expensive product than the one selected."}],"howItWorks":"The user selects a represented action or offer but receives a materially different outcome that favours the business. The activated control produces a materially different product, price or action from the one its label and preceding selection represented.","warningSigns":["The pre-action representation supports a reasonably specific expected outcome.","The observed post-action state materially differs from that outcome.","The mismatch is not corrected before commitment and favours the business."],"harms":["The user receives a materially different action from the one represented and may install unwanted software.","The traveller may buy a different, more expensive product than the one selected."],"legitimateUses":["A similar design should not be classified this way where clearly disclosed intermediate step.","A similar design should not be classified this way where availability change explained before commitment.","A similar design should not be classified this way where ordinary navigation label imprecision with no detriment."],"problematicUi":{"label":"Download your document","copy":"Download your document The prominent control starts an extension installer instead of the file. Download now Download PDF","annotations":["In “Download control opens an unrelated installer”, this element shows how bait and switch can shape the decision."]},"improvedUi":{"label":"Your document is ready","copy":"Your document is ready The file action downloads the document; optional software is a separate offer. Download PDF Download now What happens next Activating “Download PDF” produces the outcome stated on the control.","annotations":["In “Download control opens an unrelated installer”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"bait-and-switch-scenario-1","title":"Download control opens an unrelated installer","context":"Account document download","journeyStage":"Account Management","summary":"A fictional account page labels a prominent control “Download document”, but it launches an optional browser-extension installer instead.","problematic":{"label":"Download your document","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"Download your document"},{"id":"problematic-2-body","type":"text","text":"The prominent control starts an extension installer instead of the file.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Download now","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Download PDF","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Download control opens an unrelated installer”, this element shows how bait and switch can shape the decision."}]},"neutral":{"label":"Your document is ready","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Your document is ready"},{"id":"neutral-2-body","type":"text","text":"The file action downloads the document; optional software is a separate offer.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Download PDF","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Download now","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “Download PDF” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Download control opens an unrelated installer”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “The prominent control starts an extension installer instead of the file.” Review the timing and affirmative selection needed before “Download now” changes price, product or recurring liability. The user receives a materially different action from the one represented and may install unwanted software.","fairDesignPrinciple":"Make the document action perform the stated download and label any optional software offer separately.","reviewPrompts":["Which affirmative action authorises “Download now”, and where is the resulting price, product or recurring state shown before commitment?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “The pre-action representation supports a reasonably specific expected outcome”?","Which specific affirmative event creates the final commercial state, and could “Clearly disclosed intermediate step” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side account document download interface showing “Download your document” and the clearer alternative “Your document is ready”.","provenance":"Original hypothetical account document download example created for this library; no real business, product or interface is depicted."},{"id":"bait-and-switch-scenario-2","title":"Selected basic fare changes at confirmation","context":"Travel booking","journeyStage":"Checkout","summary":"A fictional booking flow records a basic fare selection but the final action purchases a premium flexible fare without a new price-and-product confirmation.","problematic":{"label":"Complete booking","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Complete booking"},{"id":"problematic-2-body","type":"text","text":"The final summary silently substitutes the premium fare.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Amount affected","amount":"€240","detail":"Pay €240"},{"id":"problematic-4-button","type":"button","text":"Pay €240","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Book basic fare €160","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Selected basic fare changes at confirmation”, this element shows how bait and switch can shape the decision."}]},"neutral":{"label":"Basic fare selected","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Basic fare selected"},{"id":"neutral-2-body","type":"text","text":"The fare, conditions and €160 total match the earlier choice.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€160","detail":"Book basic fare €160"},{"id":"neutral-4-button","type":"button","text":"Book basic fare €160","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Pay €240","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Book basic fare €160” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Selected basic fare changes at confirmation”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “The final summary silently substitutes the premium fare.” Review the timing and affirmative selection needed before “Pay €240” changes price, product or recurring liability. The traveller may buy a different, more expensive product than the one selected.","fairDesignPrinciple":"Preserve the selected fare and require explicit review if availability requires a different product or price.","reviewPrompts":["Which affirmative action authorises “Pay €240”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The observed post-action state materially differs from that outcome”?","Which specific affirmative event creates the final commercial state, and could “availability change explained before commitment” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side travel booking interface showing “Complete booking” and the clearer alternative “Basic fare selected”.","provenance":"Original hypothetical travel booking example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Make the action produce its represented result or disclose and obtain assent to any material change before commitment.","whyProblematic":"The user selects a represented action or offer but receives a materially different outcome that favours the business. The activated control produces a materially different product, price or action from the one its label and preceding selection represented. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The pre-action representation supports a reasonably specific expected outcome.","The observed post-action state materially differs from that outcome.","The mismatch is not corrected before commitment and favours the business.","Exclude or qualify the label where clearly disclosed intermediate step.","Exclude or qualify the label where availability change explained before commitment.","Exclude or qualify the label where ordinary navigation label imprecision with no detriment."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which affirmative action authorises “Download now”, and where is the resulting price, product or recurring state shown before commitment?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “The pre-action representation supports a reasonably specific expected outcome”?","Which specific affirmative event creates the final commercial state, and could “Clearly disclosed intermediate step” explain the observed outcome instead?","Which affirmative action authorises “Pay €240”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The observed post-action state materially differs from that outcome”?","Which specific affirmative event creates the final commercial state, and could “availability change explained before commitment” explain the observed outcome instead?","Which complete journey evidence supports or contradicts the bait and switch classification?"],"evidence":["Versioned captures of the Account Management and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed bait and switch mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["sneak-into-basket","drip-pricing-and-hidden-charges","hidden-subscription-or-forced-continuity"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side account document download interface showing “Download your document” and the clearer alternative “Your document is ready”.","provenance":"Original hypothetical account document download example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Bundled options: definition, examples and fairer design","slug":"bundled-options","preferredName":"Bundled options","directAnswer":"The label “Bundled options” describes this recurring design mechanism: distinct products, services, permissions or purposes are grouped under one choice so the user cannot readily understand or select them separately. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Distinct products, services, permissions or purposes are grouped under one choice so the user cannot readily understand or select them separately. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["bundling","bundle default","combined choice"],"category":"Interface interference","family":"Interface interference","journeyStages":["Checkout","Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Event booking","scenario":"A fictional ticket seller offers a concert ticket only through a control that also adds a city travel pass, although the travel component is separately deliverable and not required for entry.","harm":"A customer may pay for an unwanted component because two distinct products are presented as one indivisible choice."},{"type":"Illustrative example","context":"Business software pricing","scenario":"A fictional service offers a core plan only as a bundle with premium support and data migration, while implying those extras can be removed later although no controls exist.","harm":"A buyer may pay for unwanted services or misunderstand which components are optional."}],"howItWorks":"Distinct products, services, permissions or purposes are grouped under one choice so the user cannot readily understand or select them separately. Distinct products or services are packaged behind one selection even though their separate price, function or necessity matters to the choice.","warningSigns":["One control has two or more separable consequences.","Component choices or prices are absent, hidden or materially harder.","The bundle favours a business outcome or adds cost, data use or commitment."],"harms":["A customer may pay for an unwanted component because two distinct products are presented as one indivisible choice.","A buyer may pay for unwanted services or misunderstand which components are optional."],"legitimateUses":["A similar design should not be classified this way where genuinely indivisible product.","A similar design should not be classified this way where transparent bundle with equally accessible component options and prices."],"problematicUi":{"label":"Ticket plus city travel","copy":"Ticket plus city travel The only visible selection combines entry and an optional transport product. Choose package €78 Choose ticket only €65","annotations":["In “Ticket and travel pass presented as one package”, this element shows how bundled options can shape the decision."]},"improvedUi":{"label":"Build your booking","copy":"Build your booking The €65 ticket and optional €13 travel pass have separate controls. Choose ticket only €65 Choose package €78 Choice consequences The consequence of selecting “Choose ticket only €65” is displayed beside the option.","annotations":["In “Ticket and travel pass presented as one package”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"bundled-options-scenario-1","title":"Ticket and travel pass presented as one package","context":"Event booking","journeyStage":"Checkout","summary":"A fictional ticket seller offers a concert ticket only through a control that also adds a city travel pass, although the travel component is separately deliverable and not required for entry.","problematic":{"label":"Ticket plus city travel","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Ticket plus city travel"},{"id":"problematic-2-body","type":"text","text":"The only visible selection combines entry and an optional transport product.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Choose package €78","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Choose ticket only €65","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Ticket and travel pass presented as one package”, this element shows how bundled options can shape the decision."}]},"neutral":{"label":"Build your booking","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Build your booking"},{"id":"neutral-2-body","type":"text","text":"The €65 ticket and optional €13 travel pass have separate controls.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Choose ticket only €65","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Choose package €78","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Choose ticket only €65” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Ticket and travel pass presented as one package”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the checkout decision. The problematic state shows: “The only visible selection combines entry and an optional transport product.” Its influence should be tested by comparing the consequence and usability of “Choose package €78” with “Choose ticket only €65”. A customer may pay for an unwanted component because two distinct products are presented as one indivisible choice.","fairDesignPrinciple":"Show the event ticket and optional travel pass as separately priced selections before the basket changes.","reviewPrompts":["Do “Choose package €78” and “Choose ticket only €65” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “One control has two or more separable consequences”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Genuinely indivisible product”?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side event booking interface showing “Ticket plus city travel” and the clearer alternative “Build your booking”.","provenance":"Original hypothetical event booking example created for this library; no real business, product or interface is depicted."},{"id":"bundled-options-scenario-2","title":"Support and migration locked into one plan","context":"Business software pricing","journeyStage":"Pricing","summary":"A fictional service offers a core plan only as a bundle with premium support and data migration, while implying those extras can be removed later although no controls exist.","problematic":{"label":"Complete launch bundle","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Complete launch bundle"},{"id":"problematic-2-body","type":"text","text":"Core access, support and migration appear as one unavoidable selection.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€480","detail":"€480/month"},{"id":"problematic-4-link","type":"link","text":"Core plan €260/month","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Support and migration locked into one plan”, this element shows how bundled options can shape the decision."}]},"neutral":{"label":"Build your plan","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Build your plan"},{"id":"neutral-2-body","type":"text","text":"Core access and genuinely optional services are priced separately.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Displayed amount","amount":"€260","detail":"Core plan €260/month"},{"id":"neutral-4-link","type":"link","text":"€480/month","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Core plan €260/month” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Support and migration locked into one plan”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “Core access, support and migration appear as one unavoidable selection.” Its influence should be tested by comparing the consequence and usability of “€480/month” with “Core plan €260/month”. A buyer may pay for unwanted services or misunderstand which components are optional.","fairDesignPrinciple":"Show the core service and separable extras with individual prices and controls, or explain why a bundle cannot be split.","reviewPrompts":["Do “€480/month” and “Core plan €260/month” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “Component choices or prices are absent, hidden or materially harder”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “transparent bundle with equally accessible component options and prices”?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side business software pricing interface showing “Complete launch bundle” and the clearer alternative “Build your plan”.","provenance":"Original hypothetical business software pricing example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Show component consequences and prices and provide granular, equally accessible choices where components are separable.","whyProblematic":"Distinct products, services, permissions or purposes are grouped under one choice so the user cannot readily understand or select them separately. Distinct products or services are packaged behind one selection even though their separate price, function or necessity matters to the choice. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["One control has two or more separable consequences.","Component choices or prices are absent, hidden or materially harder.","The bundle favours a business outcome or adds cost, data use or commitment.","Exclude or qualify the label where genuinely indivisible product.","Exclude or qualify the label where transparent bundle with equally accessible component options and prices."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Choose package €78” and “Choose ticket only €65” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “One control has two or more separable consequences”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Genuinely indivisible product”?","Do “€480/month” and “Core plan €260/month” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “Component choices or prices are absent, hidden or materially harder”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “transparent bundle with equally accessible component options and prices”?","Which complete journey evidence supports or contradicts the bundled options classification?"],"evidence":["Versioned captures of the Checkout and Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed bundled options mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen","Control defaults, validation rules and consent or selection state changes"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022","eu-ucpd-2005-29"],"altText":"Side-by-side event booking interface showing “Ticket plus city travel” and the clearer alternative “Build your booking”.","provenance":"Original hypothetical event booking example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Obstruction and cancellation friction","slug":"cancellation-friction","preferredName":"Cancellation friction","directAnswer":"Cancellation friction makes leaving a service materially harder than joining it through extra steps, channel switching, repeated persuasion or unclear controls. EU law already supplies several context-dependent consumer, platform and contract rules, but it does not make every additional cancellation step automatically unlawful. Teams should compare effort, clarity, timing and consequences across the complete journey.","definition":"Ending an existing subscription, recurring service or permission is made difficult to find or complete through unnecessary steps or channel asymmetry. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["obstruction","roach motel","hard to cancel","click fatigue","hard to unsubscribe"],"category":"Exit and control","family":"Obstruction","journeyStages":["Subscription","Account Management","Cancellation"],"jurisdiction":"European Union","status":"Current law","legalBasis":[{"provision":"UCPD Articles 5 to 9","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"The full cancellation journey may be relevant to unfair, misleading or aggressive-practice analysis depending on professional diligence, material information and undue influence."},{"provision":"DSA Article 25","sourceIds":["eu-dsa-2022-2065"],"classification":"Possible risk indicator","explanation":"For online platforms, interface choices that materially distort or impair free and informed decisions require assessment under the specific provision and Commission guidance, including Article 25(2) where the UCPD or GDPR covers the practice."}],"examples":[{"type":"Illustrative example","context":"Streaming subscription","scenario":"A fictional streaming service accepts signup in three online steps but requires a weekday telephone call, repeated identity questions and a retention interview to cancel.","harm":"Channel switching and avoidable delay may cause extra charges or prevent completion."},{"type":"Illustrative example","context":"Meal-plan account","scenario":"A fictional account shows a new discount, pause offer or survey after every click on “Cancel”, and the final confirmation appears only after five refusals.","harm":"Repeated friction can delay an intended exit and increase the chance of another billing cycle."},{"type":"Illustrative example","context":"Streaming subscription","scenario":"Online signup takes two screens, but cancellation requires finding an unlabelled account submenu, rejecting three offers and calling during limited weekday hours.","harm":"A user may continue paying because the exit path imposes time and channel barriers unrelated to confirming intent."},{"type":"Illustrative example","context":"Cloud software downgrade","scenario":"The downgrade control repeatedly returns to the plan page unless the administrator gives a long free-text reason and acknowledges four separate warnings.","harm":"The organisation may retain a larger plan because procedural friction overwhelms a straightforward commercial choice."}],"howItWorks":"Ending an existing subscription, recurring service or permission is made difficult to find or complete through unnecessary steps or channel asymmetry. Ending or refusing a service requires materially more steps, time or channel changes than entry, increasing the cost of completing an already stated exit intention.","warningSigns":["The user is trying to terminate or opt out of an existing relationship.","The route is difficult to find, non-straightforward or includes steps beyond those reasonably necessary.","Completion is verified through the resulting account or subscription state."],"harms":["Channel switching and avoidable delay may cause extra charges or prevent completion.","Repeated friction can delay an intended exit and increase the chance of another billing cycle."],"legitimateUses":["A similar design should not be classified this way where reasonable authentication and fraud controls.","A similar design should not be classified this way where mandatory consequence disclosure that does not impede completion.","A similar design should not be classified this way where declining an offer before enrolment."],"problematicUi":{"label":"Call us to discuss your plan","copy":"Call us to discuss your plan The online account offers no completed cancellation route. Blocking step: Weekdays 9 to 16 only Obscured outcome: Confirm end date","annotations":["In “Online signup requires telephone cancellation”, this element shows how hard to cancel or opt out can shape the decision."]},"improvedUi":{"label":"End subscription online","copy":"End subscription online Necessary verification, effective date and confirmation are handled in one route. Completion step: Confirm end date Recorded outcome: Weekdays 9 to 16 only Request recorded: Confirm end date","annotations":["In “Online signup requires telephone cancellation”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"hard-to-cancel-or-opt-out-scenario-1","title":"Online signup requires telephone cancellation","context":"Streaming subscription","journeyStage":"Cancellation","summary":"A fictional streaming service accepts signup in three online steps but requires a weekday telephone call, repeated identity questions and a retention interview to cancel.","problematic":{"label":"Call us to discuss your plan","layout":"cancellation-flow","elements":[{"id":"problematic-1-heading","type":"heading","text":"Call us to discuss your plan"},{"id":"problematic-2-body","type":"text","text":"The online account offers no completed cancellation route.","tone":"warning"},{"id":"problematic-3-step","type":"step","label":"Blocking step: Weekdays 9 to 16 only","status":"current"},{"id":"problematic-4-step","type":"step","label":"Obscured outcome: Confirm end date","status":"current"}],"annotations":[{"targetId":"problematic-4-step","text":"In “Online signup requires telephone cancellation”, this element shows how hard to cancel or opt out can shape the decision."}]},"neutral":{"label":"End subscription online","layout":"cancellation-flow","elements":[{"id":"neutral-1-heading","type":"heading","text":"End subscription online"},{"id":"neutral-2-body","type":"text","text":"Necessary verification, effective date and confirmation are handled in one route.","tone":"default"},{"id":"neutral-3-step","type":"step","label":"Completion step: Confirm end date","status":"completed"},{"id":"neutral-4-step","type":"step","label":"Recorded outcome: Weekdays 9 to 16 only","status":"completed"},{"id":"neutral-5-badge","type":"badge","text":"Request recorded: Confirm end date","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Online signup requires telephone cancellation”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this streaming subscription example, the obstacle is: “The online account offers no completed cancellation route.” Evidence should show whether the alternative remains usable and whether “Confirm end date” reaches the represented state. Channel switching and avoidable delay may cause extra charges or prevent completion.","fairDesignPrinciple":"Provide a findable online route with proportionate verification and a durable cancellation receipt.","reviewPrompts":["How many steps, waits and channel changes separate “Weekdays 9 to 16 only” from the completed streaming subscription outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “The user is trying to terminate or opt out of an existing relationship”?","Measure the same task through the clearest available route: does the effort difference persist once “Reasonable authentication and fraud controls” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side streaming subscription interface showing “Call us to discuss your plan” and the clearer alternative “End subscription online”.","provenance":"Original hypothetical streaming subscription example created for this library; no real business, product or interface is depicted."},{"id":"hard-to-cancel-or-opt-out-scenario-2","title":"Five save offers block the final exit","context":"Meal-plan account","journeyStage":"Cancellation","summary":"A fictional account shows a new discount, pause offer or survey after every click on “Cancel”, and the final confirmation appears only after five refusals.","problematic":{"label":"Before you go","layout":"cancellation-flow","elements":[{"id":"problematic-1-heading","type":"heading","text":"Before you go"},{"id":"problematic-2-body","type":"text","text":"Five sequential retention steps stand between request and confirmation.","tone":"warning"},{"id":"problematic-3-step","type":"step","label":"Blocking step: See another offer","status":"current"},{"id":"problematic-4-step","type":"step","label":"Obscured outcome: End deliveries","status":"current"}],"annotations":[{"targetId":"problematic-4-step","text":"In “Five save offers block the final exit”, this element shows how hard to cancel or opt out can shape the decision."}]},"neutral":{"label":"Confirm cancellation","layout":"cancellation-flow","elements":[{"id":"neutral-1-heading","type":"heading","text":"Confirm cancellation"},{"id":"neutral-2-body","type":"text","text":"One optional alternative sits beside a direct confirmation action.","tone":"default"},{"id":"neutral-3-step","type":"step","label":"Completion step: End deliveries","status":"completed"},{"id":"neutral-4-step","type":"step","label":"Recorded outcome: See another offer","status":"completed"},{"id":"neutral-5-badge","type":"badge","text":"Request recorded: End deliveries","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Five save offers block the final exit”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this meal-plan account example, the obstacle is: “Five sequential retention steps stand between request and confirmation.” Evidence should show whether the alternative remains usable and whether “End deliveries” reaches the represented state. Repeated friction can delay an intended exit and increase the chance of another billing cycle.","fairDesignPrinciple":"Keep optional save offers non-blocking and provide a stable direct path to confirmation.","reviewPrompts":["How many steps, waits and channel changes separate “See another offer” from the completed meal-plan account outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “The route is difficult to find, non-straightforward or includes steps beyond those reasonably necessary”?","Measure the same task through the clearest available route: does the effort difference persist once “mandatory consequence disclosure that does not impede completion” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side meal-plan account interface showing “Before you go” and the clearer alternative “Confirm cancellation”.","provenance":"Original hypothetical meal-plan account example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Offer an easily found cancellation route in a channel proportionate to signup, disclose the effective date and consequences, permit review before confirmation and give an immediate durable receipt. Retention offers should be optional and easy to bypass.","whyProblematic":"Safeguards against fraud or accidental deletion may justify some steps. Risk increases when friction serves no proportionate user need, the path unexpectedly changes channel, consequences are withheld, or repeated prompts exploit fatigue to prevent an otherwise clear decision.","contextFactors":["The user is trying to terminate or opt out of an existing relationship.","The route is difficult to find, non-straightforward or includes steps beyond those reasonably necessary.","Completion is verified through the resulting account or subscription state.","Exclude or qualify the label where reasonable authentication and fraud controls.","Exclude or qualify the label where mandatory consequence disclosure that does not impede completion.","Exclude or qualify the label where declining an offer before enrolment."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Weekdays 9 to 16 only” from the completed streaming subscription outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “The user is trying to terminate or opt out of an existing relationship”?","Measure the same task through the clearest available route: does the effort difference persist once “Reasonable authentication and fraud controls” is accounted for?","How many steps, waits and channel changes separate “See another offer” from the completed meal-plan account outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “The route is difficult to find, non-straightforward or includes steps beyond those reasonably necessary”?","Measure the same task through the clearest available route: does the effort difference persist once “mandatory consequence disclosure that does not impede completion” is accounted for?","Which complete journey evidence supports or contradicts the hard to cancel or opt out classification?"],"evidence":["Versioned captures of the Cancellation states before, during and after the relevant decision","Configuration, content and event records supporting the observed hard to cancel or opt out mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence"],"related":["hidden-information","confirmshaming","obstructed-alternative","account-deletion-obstruction","privacy-maze"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29","eu-dsa-2022-2065","eu-crd-2011-83","eu-dfa-call-evidence-14622"],"altText":"Side-by-side streaming subscription interface showing “Call us to discuss your plan” and the clearer alternative “End subscription online”.","provenance":"Original hypothetical streaming subscription example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Choice or information overload: definition, examples and fairer design","slug":"choice-or-information-overload","preferredName":"Choice or information overload","directAnswer":"The label “Choice or information overload” describes this recurring design mechanism: the volume or organisation of options or information makes meaningful comparison impractical and channels users toward a default or business-favoured path. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"The volume or organisation of options or information makes meaningful comparison impractical and channels users toward a default or business-favoured path. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["too many options","information overload"],"category":"Interface interference","family":"Interface interference","journeyStages":["Pricing","Signup"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Energy plan selection","scenario":"A fictional provider presents twenty-seven plans with inconsistent feature names, billing periods and footnote structures but offers no grouping, filters or stable comparison view.","harm":"The volume and structure can make informed comparison impractical even without one visibly preferred plan."},{"type":"Illustrative example","context":"Signup consent choices","scenario":"A fictional signup consent screen lists forty overlapping purposes across five nested panels, with duplicated labels and no summary of the resulting state.","harm":"The apparent detail may overwhelm rather than enable a meaningful purpose-by-purpose choice."}],"howItWorks":"The volume or organisation of options or information makes meaningful comparison impractical and channels users toward a default or business-favoured path. Excessive, overlapping or inconsistently organised options consume comparison effort while leaving one default or recommendation much easier to select.","warningSigns":["A concrete decision contains excessive or poorly organised choices or information.","Key differences cannot be reasonably compared.","A default or favoured route benefits from the overload."],"harms":["The volume and structure can make informed comparison impractical even without one visibly preferred plan.","The apparent detail may overwhelm rather than enable a meaningful purpose-by-purpose choice."],"legitimateUses":["A similar design should not be classified this way where complex product legitimately requiring many comparable options with effective filters and summary.","A similar design should not be classified this way where mere long page without a decision link."],"problematicUi":{"label":"Choose from 27 plans","copy":"Choose from 27 plans Inconsistent labels, units and dense footnotes require each plan to be decoded separately. Open plan 17 Compare grouped plans","annotations":["In “Tariff grid prevents a workable comparison”, this element shows how choice or information overload can shape the decision."]},"improvedUi":{"label":"Compare four plan types","copy":"Compare four plan types Consistent price, term and exit fields make the grouped options comparable. Compare grouped plans Open plan 17 Choice consequences The consequence of selecting “Compare grouped plans” is displayed beside the option.","annotations":["In “Tariff grid prevents a workable comparison”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"choice-or-information-overload-scenario-1","title":"Tariff grid prevents a workable comparison","context":"Energy plan selection","journeyStage":"Pricing","summary":"A fictional provider presents twenty-seven plans with inconsistent feature names, billing periods and footnote structures but offers no grouping, filters or stable comparison view.","problematic":{"label":"Choose from 27 plans","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Choose from 27 plans"},{"id":"problematic-2-body","type":"text","text":"Inconsistent labels, units and dense footnotes require each plan to be decoded separately.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Open plan 17","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Compare grouped plans","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Tariff grid prevents a workable comparison”, this element shows how choice or information overload can shape the decision."}]},"neutral":{"label":"Compare four plan types","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Compare four plan types"},{"id":"neutral-2-body","type":"text","text":"Consistent price, term and exit fields make the grouped options comparable.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Compare grouped plans","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Open plan 17","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Compare grouped plans” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Tariff grid prevents a workable comparison”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “Inconsistent labels, units and dense footnotes require each plan to be decoded separately.” Its influence should be tested by comparing the consequence and usability of “Open plan 17” with “Compare grouped plans”. The volume and structure can make informed comparison impractical even without one visibly preferred plan.","fairDesignPrinciple":"Group genuinely distinct options, use consistent attributes and offer a neutral comparison table with relevant filters.","reviewPrompts":["Do “Open plan 17” and “Compare grouped plans” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “A concrete decision contains excessive or poorly organised choices or information”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Complex product legitimately requiring many comparable options with effective filters and summary”?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side energy plan selection interface showing “Choose from 27 plans” and the clearer alternative “Compare four plan types”.","provenance":"Original hypothetical energy plan selection example created for this library; no real business, product or interface is depicted."},{"id":"choice-or-information-overload-scenario-2","title":"Consent purposes fragmented into dozens of toggles","context":"Signup consent choices","journeyStage":"Signup","summary":"A fictional signup consent screen lists forty overlapping purposes across five nested panels, with duplicated labels and no summary of the resulting state.","problematic":{"label":"Manage 40 data choices","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Manage 40 data choices"},{"id":"problematic-2-body","type":"text","text":"Duplicated labels and nested toggles prevent a coherent view of what remains enabled.","tone":"warning"},{"id":"problematic-3-checkbox","type":"checkbox","label":"Audience measurement","checked":false},{"id":"problematic-4-checkbox","type":"checkbox","label":"Content measurement","checked":false},{"id":"problematic-5-checkbox","type":"checkbox","label":"Product development","checked":false},{"id":"problematic-6-checkbox","type":"checkbox","label":"Partner insights","checked":false},{"id":"problematic-7-checkbox","type":"checkbox","label":"Personalised offers","checked":false},{"id":"problematic-8-button","type":"button","text":"Open purpose 17","emphasis":"primary"}],"annotations":[{"targetId":"problematic-8-button","text":"In “Consent purposes fragmented into dozens of toggles”, this element shows how choice or information overload can shape the decision."}]},"neutral":{"label":"Choose optional purposes","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose optional purposes"},{"id":"neutral-2-body","type":"text","text":"Six distinct groups provide summaries, supporting detail and a visible final state.","tone":"default"},{"id":"neutral-3-checkbox","type":"checkbox","label":"Service analytics","checked":false},{"id":"neutral-4-checkbox","type":"checkbox","label":"Personalisation","checked":false},{"id":"neutral-5-checkbox","type":"checkbox","label":"Partner sharing","checked":false},{"id":"neutral-6-button","type":"button","text":"Review six purpose groups","emphasis":"secondary"},{"id":"neutral-7-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Review six purpose groups” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-7-disclosure","text":"In “Consent purposes fragmented into dozens of toggles”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the signup decision. The problematic state shows: “Duplicated labels and nested toggles prevent a coherent view of what remains enabled.” Its influence should be tested by comparing the consequence and usability of “Open purpose 17” with “Review six purpose groups”. The apparent detail may overwhelm rather than enable a meaningful purpose-by-purpose choice.","fairDesignPrinciple":"Use understandable purpose groups, progressive detail and a persistent summary of the choices made.","reviewPrompts":["Do “Open purpose 17” and “Review six purpose groups” receive comparable prominence and explain their consequences before activation?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Key differences cannot be reasonably compared”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “mere long page without a decision link”?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side signup consent choices interface showing “Manage 40 data choices” and the clearer alternative “Choose optional purposes”.","provenance":"Original hypothetical signup consent choices example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Structure choices around comparable dimensions, surface key consequences and avoid using volume to hide a default or preferred outcome.","whyProblematic":"The volume or organisation of options or information makes meaningful comparison impractical and channels users toward a default or business-favoured path. Excessive, overlapping or inconsistently organised options consume comparison effort while leaving one default or recommendation much easier to select. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A concrete decision contains excessive or poorly organised choices or information.","Key differences cannot be reasonably compared.","A default or favoured route benefits from the overload.","Exclude or qualify the label where complex product legitimately requiring many comparable options with effective filters and summary.","Exclude or qualify the label where mere long page without a decision link."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Open plan 17” and “Compare grouped plans” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “A concrete decision contains excessive or poorly organised choices or information”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Complex product legitimately requiring many comparable options with effective filters and summary”?","Do “Open purpose 17” and “Review six purpose groups” receive comparable prominence and explain their consequences before activation?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Key differences cannot be reasonably compared”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “mere long page without a decision link”?","Which complete journey evidence supports or contradicts the choice or information overload classification?"],"evidence":["Versioned captures of the Pricing and Signup states before, during and after the relevant decision","Configuration, content and event records supporting the observed choice or information overload mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022","eu-ucpd-2005-29"],"altText":"Side-by-side energy plan selection interface showing “Choose from 27 plans” and the clearer alternative “Compare four plan types”.","provenance":"Original hypothetical energy plan selection example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Comparison prevention: definition, examples and fairer design","slug":"comparison-prevention","preferredName":"Comparison prevention","directAnswer":"The label “Comparison prevention” describes this recurring design mechanism: information needed to compare products, plans or consequences is presented in inconsistent, fragmented or unusable form. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Information needed to compare products, plans or consequences is presented in inconsistent, fragmented or unusable form. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["hard-to-compare","attribute fragmentation"],"category":"Obstruction","family":"Obstruction","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Telecom comparison","scenario":"A fictional provider shows one plan per week, another per four weeks and a third per gigabyte, without a consistent total or usage assumption.","harm":"Customers cannot make a meaningful like-for-like comparison and may select a plan with a higher real cost."},{"type":"Illustrative example","context":"Insurance quote comparison","scenario":"A fictional quote tool reveals one plan at a time, clears the previous plan whenever another is opened and provides no stable summary of limits, excess or exclusions.","harm":"A shopper may be unable to compare material dimensions and may default to the plan the interface opens last."}],"howItWorks":"Information needed to compare products, plans or consequences is presented in inconsistent, fragmented or unusable form. Material attributes use incompatible units, labels, ordering or one-at-a-time views, forcing avoidable transformation and memory work before alternatives can be compared.","warningSigns":["Two or more realistic alternatives are presented.","At least one material attribute cannot be compared without avoidable transformation or navigation.","The structure favours a particular option, default or abandonment of comparison."],"harms":["Customers cannot make a meaningful like-for-like comparison and may select a plan with a higher real cost.","A shopper may be unable to compare material dimensions and may default to the plan the interface opens last."],"legitimateUses":["A similar design should not be classified this way where inherent differences that cannot be expressed on a shared basis.","A similar design should not be classified this way where optional advanced detail with a complete comparable summary.","A similar design should not be classified this way where minor cosmetic inconsistency."],"problematicUi":{"label":"Three ways to save","copy":"Three ways to save Prices use weekly, four-week and usage units with no common baseline. Displayed amount €8 From €8 Open comparison table","annotations":["In “Plans use incompatible pricing units”, this element shows how comparison prevention can shape the decision."]},"improvedUi":{"label":"Compare monthly cost","copy":"Compare monthly cost Every plan shows the same monthly basis, data allowance, term and total. Open comparison table From €8 Price, period and commitment The price and material terms associated with “Open comparison table” remain beside this choice.","annotations":["In “Plans use incompatible pricing units”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"comparison-prevention-scenario-1","title":"Plans use incompatible pricing units","context":"Telecom comparison","journeyStage":"Pricing","summary":"A fictional provider shows one plan per week, another per four weeks and a third per gigabyte, without a consistent total or usage assumption.","problematic":{"label":"Three ways to save","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Three ways to save"},{"id":"problematic-2-body","type":"text","text":"Prices use weekly, four-week and usage units with no common baseline.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€8","detail":"From €8"},{"id":"problematic-4-link","type":"link","text":"Open comparison table","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Plans use incompatible pricing units”, this element shows how comparison prevention can shape the decision."}]},"neutral":{"label":"Compare monthly cost","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Compare monthly cost"},{"id":"neutral-2-body","type":"text","text":"Every plan shows the same monthly basis, data allowance, term and total.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Open comparison table","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"From €8","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Open comparison table” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Plans use incompatible pricing units”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this telecom comparison example, the obstacle is: “Prices use weekly, four-week and usage units with no common baseline.” Evidence should show whether the alternative remains usable and whether “Open comparison table” reaches the represented state. Customers cannot make a meaningful like-for-like comparison and may select a plan with a higher real cost.","fairDesignPrinciple":"Add a consistent billing-period total, usage basis and sortable comparison while preserving original terms.","reviewPrompts":["How many steps, waits and channel changes separate “From €8” from the completed telecom comparison outcome?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “Two or more realistic alternatives are presented”?","Measure the same task through the clearest available route: does the effort difference persist once “Inherent differences that cannot be expressed on a shared basis” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side telecom comparison interface showing “Three ways to save” and the clearer alternative “Compare monthly cost”.","provenance":"Original hypothetical telecom comparison example created for this library; no real business, product or interface is depicted."},{"id":"comparison-prevention-scenario-2","title":"Plan details cannot be retained side by side","context":"Insurance quote comparison","journeyStage":"Pricing","summary":"A fictional quote tool reveals one plan at a time, clears the previous plan whenever another is opened and provides no stable summary of limits, excess or exclusions.","problematic":{"label":"Review one plan","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Review one plan"},{"id":"problematic-2-body","type":"text","text":"Opening another quote removes the earlier plan and changes the order of attributes.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Open next quote","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Open comparison table","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Plan details cannot be retained side by side”, this element shows how comparison prevention can shape the decision."}]},"neutral":{"label":"Compare three quotes","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Compare three quotes"},{"id":"neutral-2-body","type":"text","text":"Selected plans remain visible in one consistent table.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Open comparison table","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Open next quote","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Open comparison table” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Plan details cannot be retained side by side”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this insurance quote comparison example, the obstacle is: “Opening another quote removes the earlier plan and changes the order of attributes.” Evidence should show whether the alternative remains usable and whether “Open comparison table” reaches the represented state. A shopper may be unable to compare material dimensions and may default to the plan the interface opens last.","fairDesignPrinciple":"Provide a durable side-by-side table with consistent price, limit, excess and exclusion fields, while keeping source detail available.","reviewPrompts":["How many steps, waits and channel changes separate “Open next quote” from the completed insurance quote comparison outcome?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “At least one material attribute cannot be compared without avoidable transformation or navigation”?","Measure the same task through the clearest available route: does the effort difference persist once “optional advanced detail with a complete comparable summary” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side insurance quote comparison interface showing “Review one plan” and the clearer alternative “Compare three quotes”.","provenance":"Original hypothetical insurance quote comparison example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use consistent units, terminology and side-by-side material totals with accessible supporting detail.","whyProblematic":"Information needed to compare products, plans or consequences is presented in inconsistent, fragmented or unusable form. Material attributes use incompatible units, labels, ordering or one-at-a-time views, forcing avoidable transformation and memory work before alternatives can be compared. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["Two or more realistic alternatives are presented.","At least one material attribute cannot be compared without avoidable transformation or navigation.","The structure favours a particular option, default or abandonment of comparison.","Exclude or qualify the label where inherent differences that cannot be expressed on a shared basis.","Exclude or qualify the label where optional advanced detail with a complete comparable summary.","Exclude or qualify the label where minor cosmetic inconsistency."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “From €8” from the completed telecom comparison outcome?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “Two or more realistic alternatives are presented”?","Measure the same task through the clearest available route: does the effort difference persist once “Inherent differences that cannot be expressed on a shared basis” is accounted for?","How many steps, waits and channel changes separate “Open next quote” from the completed insurance quote comparison outcome?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “At least one material attribute cannot be compared without avoidable transformation or navigation”?","Measure the same task through the clearest available route: does the effort difference persist once “optional advanced detail with a complete comparable summary” is accounted for?","Which complete journey evidence supports or contradicts the comparison prevention classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed comparison prevention mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["obstructed-alternative","cancellation-friction","account-deletion-obstruction"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side telecom comparison interface showing “Three ways to save” and the clearer alternative “Compare monthly cost”.","provenance":"Original hypothetical telecom comparison example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Complex or inaccessible language: definition, examples and fairer design","slug":"complex-or-inaccessible-language","preferredName":"Complex or inaccessible language","directAnswer":"The label “Complex or inaccessible language” describes this recurring design mechanism: material guidance is presented in a language or level of complexity that makes informed choice materially harder for the target user. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Material guidance is presented in a language or level of complexity that makes informed choice materially harder for the target user. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["complex language","wrong language","language discontinuity","hidden legalese"],"category":"Interface interference","family":"Interface interference","journeyStages":["Cancellation","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Software account","scenario":"A fictional service describes the effect of cancellation through a 220-word clause containing undefined terms and cross-references immediately before confirmation.","harm":"A subscriber may not understand billing, access or data consequences at the moment of choice."},{"type":"Illustrative example","context":"Cross-border checkout","scenario":"A fictional shop presents product and basket information in English but switches mandatory fee and return text to another language on the payment screen.","harm":"A customer may commit without understanding material terms that appear only at the last step."}],"howItWorks":"Material guidance is presented in a language or level of complexity that makes informed choice materially harder for the target user. Material consequences become harder to understand through avoidable jargon, syntactic complexity or an unexpected language change at the decision point.","warningSigns":["The text is material to a decision.","Locale mismatch or avoidable complexity is evidenced.","Reduced comprehension plausibly favours a business outcome or creates detriment."],"harms":["A subscriber may not understand billing, access or data consequences at the moment of choice.","A customer may commit without understanding material terms that appear only at the last step."],"legitimateUses":["A similar design should not be classified this way where necessary technical terminology with clear explanation.","A similar design should not be classified this way where user-selected alternate language."],"problematicUi":{"label":"Effectuation of cessation","copy":"Effectuation of cessation Undefined legal terms obscure what happens after the button is pressed. Acknowledge cessation provision End plan","annotations":["In “Cancellation consequence written in legalese”, this element shows how complex or inaccessible language can shape the decision."]},"improvedUi":{"label":"Your plan ends on 30 September","copy":"Your plan ends on 30 September No further renewal; files remain available until that date. End plan Acknowledge cessation provision What happens next Activating “End plan” produces the outcome stated on the control.","annotations":["In “Cancellation consequence written in legalese”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"complex-or-inaccessible-language-scenario-1","title":"Cancellation consequence written in legalese","context":"Software account","journeyStage":"Cancellation","summary":"A fictional service describes the effect of cancellation through a 220-word clause containing undefined terms and cross-references immediately before confirmation.","problematic":{"label":"Effectuation of cessation","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"Effectuation of cessation"},{"id":"problematic-2-body","type":"text","text":"Undefined legal terms obscure what happens after the button is pressed.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Acknowledge cessation provision","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"End plan","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Cancellation consequence written in legalese”, this element shows how complex or inaccessible language can shape the decision."}]},"neutral":{"label":"Your plan ends on 30 September","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Your plan ends on 30 September"},{"id":"neutral-2-body","type":"text","text":"No further renewal; files remain available until that date.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"End plan","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Acknowledge cessation provision","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “End plan” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Cancellation consequence written in legalese”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the cancellation decision. The problematic state shows: “Undefined legal terms obscure what happens after the button is pressed.” Its influence should be tested by comparing the consequence and usability of “Acknowledge cessation provision” with “End plan”. A subscriber may not understand billing, access or data consequences at the moment of choice.","fairDesignPrinciple":"Summarise the effective date, final charge, remaining access and data outcome in plain language, with legal detail available separately.","reviewPrompts":["Do “Acknowledge cessation provision” and “End plan” receive comparable prominence and explain their consequences before activation?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “The text is material to a decision”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Necessary technical terminology with clear explanation”?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side software account interface showing “Effectuation of cessation” and the clearer alternative “Your plan ends on 30 September”.","provenance":"Original hypothetical software account example created for this library; no real business, product or interface is depicted."},{"id":"complex-or-inaccessible-language-scenario-2","title":"Payment step changes language without warning","context":"Cross-border checkout","journeyStage":"Checkout","summary":"A fictional shop presents product and basket information in English but switches mandatory fee and return text to another language on the payment screen.","problematic":{"label":"Complete payment","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Complete payment"},{"id":"problematic-2-body","type":"text","text":"Mandatory charge and return conditions appear only in an unexpected language.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Amount affected","amount":"€84","detail":"Pay €84"},{"id":"problematic-4-button","type":"button","text":"Pay €84","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Pay €84 after review","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Payment step changes language without warning”, this element shows how complex or inaccessible language can shape the decision."}]},"neutral":{"label":"Order summary in English","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Order summary in English"},{"id":"neutral-2-body","type":"text","text":"Price, charge and return conditions remain understandable at payment.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€84","detail":"Pay €84 after review"},{"id":"neutral-4-button","type":"button","text":"Pay €84 after review","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Pay €84","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Pay €84 after review” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Payment step changes language without warning”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the checkout decision. The problematic state shows: “Mandatory charge and return conditions appear only in an unexpected language.” Its influence should be tested by comparing the consequence and usability of “Pay €84” with “Pay €84 after review”. A customer may commit without understanding material terms that appear only at the last step.","fairDesignPrinciple":"Keep material information in the user’s selected language and clearly offer any necessary language change before payment.","reviewPrompts":["Do “Pay €84” and “Pay €84 after review” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “Locale mismatch or avoidable complexity is evidenced”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “user-selected alternate language”?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side cross-border checkout interface showing “Complete payment” and the clearer alternative “Order summary in English”.","provenance":"Original hypothetical cross-border checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use the user's selected language, plain structure and explained terminology for material consequences.","whyProblematic":"Material guidance is presented in a language or level of complexity that makes informed choice materially harder for the target user. Material consequences become harder to understand through avoidable jargon, syntactic complexity or an unexpected language change at the decision point. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The text is material to a decision.","Locale mismatch or avoidable complexity is evidenced.","Reduced comprehension plausibly favours a business outcome or creates detriment.","Exclude or qualify the label where necessary technical terminology with clear explanation.","Exclude or qualify the label where user-selected alternate language."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Acknowledge cessation provision” and “End plan” receive comparable prominence and explain their consequences before activation?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “The text is material to a decision”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Necessary technical terminology with clear explanation”?","Do “Pay €84” and “Pay €84 after review” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “Locale mismatch or avoidable complexity is evidenced”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “user-selected alternate language”?","Which complete journey evidence supports or contradicts the complex or inaccessible language classification?"],"evidence":["Versioned captures of the Cancellation and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed complex or inaccessible language mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-ucpd-2005-29"],"altText":"Side-by-side software account interface showing “Effectuation of cessation” and the clearer alternative “Your plan ends on 30 September”.","provenance":"Original hypothetical software account example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Confirmshaming and manipulative wording","slug":"confirmshaming","preferredName":"Confirmshaming","directAnswer":"Confirmshaming uses guilt, ridicule, fear or loaded labels to make refusal feel socially or emotionally costly. The term is a UX taxonomy, not a standalone EU legal offence. Particular wording may still matter under existing unfair-commercial-practice or platform-interface rules when, in context, it impairs free and informed choice or exerts undue influence.","definition":"Option labels use shame, guilt, fear or asymmetric emotional framing to move the user away from the outcome they would otherwise choose. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["emotional pressure","guilt-inducing choice architecture","loaded refusal","confirmshaming","toying with emotion","emotional steering","positive or negative framing"],"category":"Language and pressure","family":"Interface interference","journeyStages":["Signup","Checkout","Subscription","Cancellation"],"jurisdiction":"European Union","status":"Current law","legalBasis":[{"provision":"UCPD Articles 5 and 8 to 9","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Wording and pressure can be relevant to professional-diligence and aggressive-practice analysis, including harassment, coercion or undue influence in context."},{"provision":"DSA Article 25","sourceIds":["eu-dsa-2022-2065"],"classification":"Possible risk indicator","explanation":"On online platforms, wording is part of interface organisation and operation when assessing deception, manipulation or material impairment of decisions; Article 25(2) must be checked where the UCPD or GDPR applies."}],"examples":[{"type":"Illustrative example","context":"Checkout add-on","scenario":"A fictional checkout labels an €18 protection purchase “Protect my family” and the refusal “No, I do not care if they are at risk”.","harm":"Guilt-laden wording may pressure a shopper to buy rather than evaluate the product."},{"type":"Illustrative example","context":"Community subscription","scenario":"A fictional service tells a subscriber that leaving will “let the whole community down” before each of three confirmation steps.","harm":"Repeated social guilt may deter or delay an intended cancellation."},{"type":"Illustrative example","context":"Marketing signup","scenario":"A discount pop-up labels acceptance ‘Yes, I save money’ and refusal ‘No, I prefer paying more’, without a neutral close or decline control.","harm":"The refusal label attaches ridicule to a legitimate choice and may push a user to disclose contact details."},{"type":"Illustrative example","context":"Subscription cancellation","scenario":"The final screen asks users to confirm that they ‘do not care about staying protected’ before ending an optional security add-on.","harm":"Fear-laden language may deter cancellation without adding factual information about consequences or alternatives."}],"howItWorks":"Option labels use shame, guilt, fear or asymmetric emotional framing to move the user away from the outcome they would otherwise choose. One option is framed with guilt, fear or judgment, shifting attention from the commercial consequence to an emotional claim about the person choosing.","warningSigns":["The language is attached to a concrete choice.","Emotion or judgement is materially asymmetric between options.","The framing favours a business outcome and has a plausible detrimental consequence."],"harms":["Guilt-laden wording may pressure a shopper to buy rather than evaluate the product.","Repeated social guilt may deter or delay an intended cancellation."],"legitimateUses":["A similar design should not be classified this way where general brand tone not linked to a decision.","A similar design should not be classified this way where neutral explanation of a real consequence."],"problematicUi":{"label":"Add protection","copy":"Add protection The decline labels the shopper as uncaring. No, I accept the risk Continue without protection","annotations":["In “Decline copy shames a safety choice”, this element shows how manipulative choice wording can shape the decision."]},"improvedUi":{"label":"Optional protection · €18","copy":"Optional protection · €18 Both controls state the commercial outcome in neutral language. Continue without protection No, I accept the risk Choice consequences The consequence of selecting “Continue without protection” is displayed beside the option.","annotations":["In “Decline copy shames a safety choice”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"manipulative-choice-wording-scenario-1","title":"Decline copy shames a safety choice","context":"Checkout add-on","journeyStage":"Checkout","summary":"A fictional checkout labels an €18 protection purchase “Protect my family” and the refusal “No, I do not care if they are at risk”.","problematic":{"label":"Add protection","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Add protection"},{"id":"problematic-2-body","type":"text","text":"The decline labels the shopper as uncaring.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"No, I accept the risk","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Continue without protection","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Decline copy shames a safety choice”, this element shows how manipulative choice wording can shape the decision."}]},"neutral":{"label":"Optional protection · €18","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Optional protection · €18"},{"id":"neutral-2-body","type":"text","text":"Both controls state the commercial outcome in neutral language.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Continue without protection","checked":false},{"id":"neutral-4-radio","type":"radio","label":"No, I accept the risk","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Continue without protection” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Decline copy shames a safety choice”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the checkout decision. The problematic state shows: “The decline labels the shopper as uncaring.” Its influence should be tested by comparing the consequence and usability of “No, I accept the risk” with “Continue without protection”. Guilt-laden wording may pressure a shopper to buy rather than evaluate the product.","fairDesignPrinciple":"Describe acceptance and refusal accurately without judging the person making the choice.","reviewPrompts":["Do “No, I accept the risk” and “Continue without protection” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “The language is attached to a concrete choice”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “General brand tone not linked to a decision”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side checkout add-on interface showing “Add protection” and the clearer alternative “Optional protection · €18”.","provenance":"Original hypothetical checkout add-on example created for this library; no real business, product or interface is depicted."},{"id":"manipulative-choice-wording-scenario-2","title":"Cancellation message frames departure as betrayal","context":"Community subscription","journeyStage":"Cancellation","summary":"A fictional service tells a subscriber that leaving will “let the whole community down” before each of three confirmation steps.","problematic":{"label":"Do not abandon your community","layout":"cancellation-flow","elements":[{"id":"problematic-1-heading","type":"heading","text":"Do not abandon your community"},{"id":"problematic-2-body","type":"text","text":"Each exit step frames cancellation as a personal failure.","tone":"warning"},{"id":"problematic-3-step","type":"step","label":"Blocking step: Stay and support everyone","status":"current"},{"id":"problematic-4-step","type":"step","label":"Obscured outcome: Confirm cancellation","status":"current"}],"annotations":[{"targetId":"problematic-4-step","text":"In “Cancellation message frames departure as betrayal”, this element shows how manipulative choice wording can shape the decision."}]},"neutral":{"label":"End community plan","layout":"cancellation-flow","elements":[{"id":"neutral-1-heading","type":"heading","text":"End community plan"},{"id":"neutral-2-body","type":"text","text":"The effective date and access consequences are stated without shame.","tone":"default"},{"id":"neutral-3-step","type":"step","label":"Completion step: Confirm cancellation","status":"completed"},{"id":"neutral-4-step","type":"step","label":"Recorded outcome: Stay and support everyone","status":"completed"},{"id":"neutral-5-badge","type":"badge","text":"Request recorded: Confirm cancellation","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Cancellation message frames departure as betrayal”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the cancellation decision. The problematic state shows: “Each exit step frames cancellation as a personal failure.” Its influence should be tested by comparing the consequence and usability of “Stay and support everyone” with “Confirm cancellation”. Repeated social guilt may deter or delay an intended cancellation.","fairDesignPrinciple":"Use factual consequences and a direct confirmation without moral judgment or repeated emotional prompts.","reviewPrompts":["Do “Stay and support everyone” and “Confirm cancellation” receive comparable prominence and explain their consequences before activation?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “Emotion or judgement is materially asymmetric between options”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “neutral explanation of a real consequence”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side community subscription interface showing “Do not abandon your community” and the clearer alternative “End community plan”.","provenance":"Original hypothetical community subscription example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Label choices with neutral, parallel verbs and state factual consequences in the same tone. If a material risk genuinely follows, explain it specifically and proportionately rather than attaching a moral judgement to refusal.","whyProblematic":"Tone alone does not decide legality, and playful copy may be benign. Review becomes important where the language targets vulnerability, accompanies unequal visual treatment, repeats after refusal or misstates consequences in order to secure a payment, disclosure or continuing contract.","contextFactors":["The language is attached to a concrete choice.","Emotion or judgement is materially asymmetric between options.","The framing favours a business outcome and has a plausible detrimental consequence.","Exclude or qualify the label where general brand tone not linked to a decision.","Exclude or qualify the label where neutral explanation of a real consequence."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “No, I accept the risk” and “Continue without protection” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “The language is attached to a concrete choice”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “General brand tone not linked to a decision”?","Do “Stay and support everyone” and “Confirm cancellation” receive comparable prominence and explain their consequences before activation?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “Emotion or judgement is materially asymmetric between options”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “neutral explanation of a real consequence”?","Which complete journey evidence supports or contradicts the manipulative choice wording classification?"],"evidence":["Versioned captures of the Checkout and Cancellation states before, during and after the relevant decision","Configuration, content and event records supporting the observed manipulative choice wording mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["false-hierarchy","false-urgency-and-scarcity","hidden-information","preselection-and-defaults"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29","eu-dsa-2022-2065","eu-dfa-call-evidence-14622"],"altText":"Side-by-side checkout add-on interface showing “Add protection” and the clearer alternative “Optional protection · €18”.","provenance":"Original hypothetical checkout add-on example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Contact harvesting and coerced referrals: definition, examples and fairer design","slug":"contact-harvesting-and-coerced-referrals","preferredName":"Contact harvesting and coerced referrals","directAnswer":"The label “Contact harvesting and coerced referrals” describes this recurring design mechanism: the service extracts contact information, sends or prepares unwanted invitations, or ties functionality to recruiting other people. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"The service extracts contact information, sends or prepares unwanted invitations, or ties functionality to recruiting other people. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["friend spam","address book leeching","social pyramid"],"category":"Forced action","family":"Forced action","journeyStages":["Signup","Account Management"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Social app onboarding","scenario":"A fictional community app stops onboarding at an address-book permission screen and gives no visible way to continue without uploading contacts.","harm":"Contacts who never used the service may be exposed or invited, while the new user loses a meaningful refusal."},{"type":"Illustrative example","context":"Collaboration workspace","scenario":"A fictional workspace keeps export disabled until the user supplies three colleagues’ addresses and sends invitations from the service.","harm":"The user is pressured to disclose other people’s contact data and send messages unrelated to the export task."}],"howItWorks":"The service extracts contact information, sends or prepares unwanted invitations, or ties functionality to recruiting other people. Progress depends on exposing or contacting other people, turning a referral or address-book permission into the price of access to an unrelated feature.","warningSigns":["Contact access, recipient selection, invitation or referral is involved.","Consent, recipient choice or downstream use is unclear, defaulted or coerced.","The behaviour is linked to access, reward or normal progression."],"harms":["Contacts who never used the service may be exposed or invited, while the new user loses a meaningful refusal.","The user is pressured to disclose other people’s contact data and send messages unrelated to the export task."],"legitimateUses":["A similar design should not be classified this way where voluntary one-recipient sharing with preview and confirmation.","A similar design should not be classified this way where clearly optional referral program with no functional penalty."],"problematicUi":{"label":"Find everyone you know","copy":"Find everyone you know Onboarding cannot continue until contacts are uploaded. Allow contacts Skip for now","annotations":["In “Address-book import blocks onboarding”, this element shows how contact harvesting and coerced referrals can shape the decision."]},"improvedUi":{"label":"Find contacts later","copy":"Find contacts later Contact discovery is optional and onboarding can continue without it. Skip for now Allow contacts What happens next Activating “Skip for now” produces the outcome stated on the control.","annotations":["In “Address-book import blocks onboarding”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"contact-harvesting-and-coerced-referrals-scenario-1","title":"Address-book import blocks onboarding","context":"Social app onboarding","journeyStage":"Signup","summary":"A fictional community app stops onboarding at an address-book permission screen and gives no visible way to continue without uploading contacts.","problematic":{"label":"Find everyone you know","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"Find everyone you know"},{"id":"problematic-2-body","type":"text","text":"Onboarding cannot continue until contacts are uploaded.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Allow contacts","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Skip for now","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Address-book import blocks onboarding”, this element shows how contact harvesting and coerced referrals can shape the decision."}]},"neutral":{"label":"Find contacts later","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Find contacts later"},{"id":"neutral-2-body","type":"text","text":"Contact discovery is optional and onboarding can continue without it.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Skip for now","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Allow contacts","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “Skip for now” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Address-book import blocks onboarding”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the signup goal. The panel states: “Onboarding cannot continue until contacts are uploaded.” Reviewers need to establish whether “Allow contacts” is necessary for the selected task or pressures the user into a separable action. Contacts who never used the service may be exposed or invited, while the new user loses a meaningful refusal.","fairDesignPrinciple":"Explain the optional discovery benefit, provide a visible skip control and do not prepare invitations without a separate deliberate action.","reviewPrompts":["What functional need makes “Allow contacts” necessary for the social app onboarding goal, and can that need be met with less disclosure or commitment?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “Contact access, recipient selection, invitation or referral is involved”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Voluntary one-recipient sharing with preview and confirmation”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side social app onboarding interface showing “Find everyone you know” and the clearer alternative “Find contacts later”.","provenance":"Original hypothetical social app onboarding example created for this library; no real business, product or interface is depicted."},{"id":"contact-harvesting-and-coerced-referrals-scenario-2","title":"Feature unlocked by recruiting friends","context":"Collaboration workspace","journeyStage":"Account Management","summary":"A fictional workspace keeps export disabled until the user supplies three colleagues’ addresses and sends invitations from the service.","problematic":{"label":"Invite three people to export","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"Invite three people to export"},{"id":"problematic-2-body","type":"text","text":"The export link stays locked until three invitations are sent.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Add contacts","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Add contacts","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Feature unlocked by recruiting friends”, this element shows how contact harvesting and coerced referrals can shape the decision."}]},"neutral":{"label":"Export your workspace","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Export your workspace"},{"id":"neutral-2-body","type":"text","text":"Export works independently; inviting collaborators remains optional.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Download export","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Download export","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Download export” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Feature unlocked by recruiting friends”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the account management goal. The panel states: “The export link stays locked until three invitations are sent.” Reviewers need to establish whether “Add contacts” is necessary for the selected task or pressures the user into a separable action. The user is pressured to disclose other people’s contact data and send messages unrelated to the export task.","fairDesignPrinciple":"Keep export independent of referrals and let users invite collaborators only when collaboration is their chosen goal.","reviewPrompts":["What functional need makes “Add contacts” necessary for the collaboration workspace goal, and can that need be met with less disclosure or commitment?","Test the control across refresh, device and account states; is “Consent, recipient choice or downstream use is unclear, defaulted or coerced” still observable after persistence is considered?","Could the stated purpose make this dependency genuinely necessary under the boundary “clearly optional referral program with no functional penalty”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side collaboration workspace interface showing “Invite three people to export” and the clearer alternative “Export your workspace”.","provenance":"Original hypothetical collaboration workspace example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Make contact access and referrals optional, granular and previewable; require affirmative confirmation for every recipient and message.","whyProblematic":"The service extracts contact information, sends or prepares unwanted invitations, or ties functionality to recruiting other people. Progress depends on exposing or contacting other people, turning a referral or address-book permission into the price of access to an unrelated feature. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["Contact access, recipient selection, invitation or referral is involved.","Consent, recipient choice or downstream use is unclear, defaulted or coerced.","The behaviour is linked to access, reward or normal progression.","Exclude or qualify the label where voluntary one-recipient sharing with preview and confirmation.","Exclude or qualify the label where clearly optional referral program with no functional penalty."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["What functional need makes “Allow contacts” necessary for the social app onboarding goal, and can that need be met with less disclosure or commitment?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “Contact access, recipient selection, invitation or referral is involved”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Voluntary one-recipient sharing with preview and confirmation”, and what product evidence would demonstrate that necessity?","What functional need makes “Add contacts” necessary for the collaboration workspace goal, and can that need be met with less disclosure or commitment?","Test the control across refresh, device and account states; is “Consent, recipient choice or downstream use is unclear, defaulted or coerced” still observable after persistence is considered?","Could the stated purpose make this dependency genuinely necessary under the boundary “clearly optional referral program with no functional penalty”, and what product evidence would demonstrate that necessity?","Which complete journey evidence supports or contradicts the contact harvesting and coerced referrals classification?"],"evidence":["Versioned captures of the Signup and Account Management states before, during and after the relevant decision","Configuration, content and event records supporting the observed contact harvesting and coerced referrals mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence"],"related":["forced-registration","forced-action-and-data-disclosure","gamified-or-paid-access-coercion"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side social app onboarding interface showing “Find everyone you know” and the clearer alternative “Find contacts later”.","provenance":"Original hypothetical social app onboarding example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Customer-support obstruction: definition, examples and fairer design","slug":"customer-support-obstruction","preferredName":"Customer-support obstruction","directAnswer":"The label “Customer-support obstruction” describes this recurring design mechanism: access to support needed to resolve a purchase, account, charge or right is hidden or burdened by unnecessary loops and dead ends. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Access to support needed to resolve a purchase, account, charge or right is hidden or burdened by unnecessary loops and dead ends. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["support maze","contact obstruction"],"category":"Obstruction","family":"Obstruction","journeyStages":["Account Management","Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Billing support","scenario":"A fictional subscription service routes every “charged after cancellation” message through the same three bot articles and offers no human or written case route.","harm":"A customer may be unable to dispute a charge or preserve evidence of the request."},{"type":"Illustrative example","context":"Pre-sale accessibility query","scenario":"A fictional retailer’s only contact form requires an order number and rejects enquiries from people seeking accessibility information before purchase.","harm":"Potential customers cannot obtain material support because the form assumes a completed transaction."}],"howItWorks":"Access to support needed to resolve a purchase, account, charge or right is hidden or burdened by unnecessary loops and dead ends. Self-service loops or irrelevant prerequisites prevent a user from raising the actual issue and preserving a case through an accessible support route.","warningSigns":["Support is materially needed for a consumer issue connected with supply.","Available routes are difficult to find, repeatedly loop or lack a viable escalation path.","The obstruction plausibly delays or prevents remedy."],"harms":["A customer may be unable to dispute a charge or preserve evidence of the request.","Potential customers cannot obtain material support because the form assumes a completed transaction."],"legitimateUses":["A similar design should not be classified this way where reasonable queue or documented service hours.","A similar design should not be classified this way where self-service that fully resolves the issue.","A similar design should not be classified this way where support not relevant to the scanned transaction."],"problematicUi":{"label":"How can we help?","copy":"How can we help? The bot repeats three articles and closes the conversation after each answer. Start over Unconfirmed state: Start over","annotations":["In “Support bot loops without escalation”, this element shows how customer-support obstruction can shape the decision."]},"improvedUi":{"label":"Billing issue not resolved","copy":"Billing issue not resolved A written escalation route preserves the history and creates a case number. Send to support Saved state: Send to support Persisted account state The saved state behind “Send to support” remains consistent after refresh and across supported channels.","annotations":["In “Support bot loops without escalation”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"customer-support-obstruction-scenario-1","title":"Support bot loops without escalation","context":"Billing support","journeyStage":"Account Management","summary":"A fictional subscription service routes every “charged after cancellation” message through the same three bot articles and offers no human or written case route.","problematic":{"label":"How can we help?","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"How can we help?"},{"id":"problematic-2-body","type":"text","text":"The bot repeats three articles and closes the conversation after each answer.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Start over","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Start over","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Support bot loops without escalation”, this element shows how customer-support obstruction can shape the decision."}]},"neutral":{"label":"Billing issue not resolved","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Billing issue not resolved"},{"id":"neutral-2-body","type":"text","text":"A written escalation route preserves the history and creates a case number.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Send to support","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Send to support","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Send to support” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Support bot loops without escalation”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this billing support example, the obstacle is: “The bot repeats three articles and closes the conversation after each answer.” Evidence should show whether the alternative remains usable and whether “Send to support” reaches the represented state. A customer may be unable to dispute a charge or preserve evidence of the request.","fairDesignPrinciple":"Provide an accessible escalation route, retain the conversation and issue a case reference when self-service cannot resolve the issue.","reviewPrompts":["How many steps, waits and channel changes separate “Start over” from the completed billing support outcome?","Test the control across refresh, device and account states; is “Support is materially needed for a consumer issue connected with supply” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “Reasonable queue or documented service hours” is accounted for?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side billing support interface showing “How can we help?” and the clearer alternative “Billing issue not resolved”.","provenance":"Original hypothetical billing support example created for this library; no real business, product or interface is depicted."},{"id":"customer-support-obstruction-scenario-2","title":"Contact form requires irrelevant purchase data","context":"Pre-sale accessibility query","journeyStage":"Pricing","summary":"A fictional retailer’s only contact form requires an order number and rejects enquiries from people seeking accessibility information before purchase.","problematic":{"label":"Contact customer care","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Contact customer care"},{"id":"problematic-2-body","type":"text","text":"An order number is mandatory for every topic.","tone":"warning"},{"id":"problematic-3-input","type":"input","label":"Required order number","placeholder":"Enter required order number"},{"id":"problematic-4-input","type":"input","label":"Question","placeholder":"Enter question"},{"id":"problematic-5-button","type":"button","text":"Enter order number","emphasis":"primary"}],"annotations":[{"targetId":"problematic-5-button","text":"In “Contact form requires irrelevant purchase data”, this element shows how customer-support obstruction can shape the decision."}]},"neutral":{"label":"Choose an enquiry type","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose an enquiry type"},{"id":"neutral-2-body","type":"text","text":"Pre-sale questions can be sent without purchase data.","tone":"default"},{"id":"neutral-3-input","type":"input","label":"Email address","placeholder":"Enter email address"},{"id":"neutral-4-input","type":"input","label":"Accessibility question","placeholder":"Enter accessibility question"},{"id":"neutral-5-button","type":"button","text":"Send accessibility question","emphasis":"secondary"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Send accessibility question” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Contact form requires irrelevant purchase data”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this pre-sale accessibility query example, the obstacle is: “An order number is mandatory for every topic.” Evidence should show whether the alternative remains usable and whether “Send accessibility question” reaches the represented state. Potential customers cannot obtain material support because the form assumes a completed transaction.","fairDesignPrinciple":"Ask only for information relevant to the enquiry and provide routes for pre-sale, account and order support.","reviewPrompts":["How many steps, waits and channel changes separate “Enter order number” from the completed pre-sale accessibility query outcome?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Available routes are difficult to find, repeatedly loop or lack a viable escalation path”?","Measure the same task through the clearest available route: does the effort difference persist once “self-service that fully resolves the issue” is accounted for?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side pre-sale accessibility query interface showing “Contact customer care” and the clearer alternative “Choose an enquiry type”.","provenance":"Original hypothetical pre-sale accessibility query example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Provide a discoverable support route, preserve context, and offer viable escalation for unresolved material issues.","whyProblematic":"Access to support needed to resolve a purchase, account, charge or right is hidden or burdened by unnecessary loops and dead ends. Self-service loops or irrelevant prerequisites prevent a user from raising the actual issue and preserving a case through an accessible support route. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["Support is materially needed for a consumer issue connected with supply.","Available routes are difficult to find, repeatedly loop or lack a viable escalation path.","The obstruction plausibly delays or prevents remedy.","Exclude or qualify the label where reasonable queue or documented service hours.","Exclude or qualify the label where self-service that fully resolves the issue.","Exclude or qualify the label where support not relevant to the scanned transaction."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Start over” from the completed billing support outcome?","Test the control across refresh, device and account states; is “Support is materially needed for a consumer issue connected with supply” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “Reasonable queue or documented service hours” is accounted for?","How many steps, waits and channel changes separate “Enter order number” from the completed pre-sale accessibility query outcome?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Available routes are difficult to find, repeatedly loop or lack a viable escalation path”?","Measure the same task through the clearest available route: does the effort difference persist once “self-service that fully resolves the issue” is accounted for?","Which complete journey evidence supports or contradicts the customer-support obstruction classification?"],"evidence":["Versioned captures of the Account Management and Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed customer-support obstruction mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["obstructed-alternative","cancellation-friction","account-deletion-obstruction"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-ucpd-2005-29"],"altText":"Side-by-side billing support interface showing “How can we help?” and the clearer alternative “Billing issue not resolved”.","provenance":"Original hypothetical billing support example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Dead end: definition, examples and fairer design","slug":"dead-end","preferredName":"Dead end","directAnswer":"The label “Dead end” describes this recurring design mechanism: a consumer-favourable route cannot reach its represented outcome and instead loops, stalls or loses progress. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A consumer-favourable route cannot reach its represented outcome and instead loops, stalls or loses progress. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["interaction dead end","blocked path"],"category":"Obstruction","family":"Obstruction","journeyStages":["Account Management","Cancellation"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Order support","scenario":"A fictional refund form accepts every field, then returns to the first screen with “Something went wrong” and no saved state or alternative route.","harm":"A customer may abandon a valid request after repeating work without a way to complete or recover."},{"type":"Illustrative example","context":"Subscription account","scenario":"A fictional service shows “Cancellation complete” but returns the user to an active-plan dashboard and continues renewal without a receipt or status event.","harm":"The represented outcome is not reached, leaving the subscriber exposed to another charge."}],"howItWorks":"A consumer-favourable route cannot reach its represented outcome and instead loops, stalls or loses progress. A route represents that a request can complete but then loops, errors or changes no durable state, without a working recovery path or confirmation record.","warningSigns":["The interface represents or reasonably implies that the outcome is available.","Repeated execution cannot reach that outcome under controlled conditions.","A business-favoured route remains functional or the failure systematically burdens the alternative."],"harms":["A customer may abandon a valid request after repeating work without a way to complete or recover.","The represented outcome is not reached, leaving the subscriber exposed to another charge."],"legitimateUses":["A similar design should not be classified this way where general outage affecting all paths.","A similar design should not be classified this way where validation error caused by invalid fixture input.","A similar design should not be classified this way where clearly unavailable option."],"problematicUi":{"label":"Submit refund request","copy":"Submit refund request The form loops to an empty first screen without identifying a fix. Order number Enter order number Refund reason Enter refund reason Requested amount Enter requested amount Try again","annotations":["In “Refund form loops after submission”, this element shows how dead end can shape the decision."]},"improvedUi":{"label":"We could not submit the request","copy":"We could not submit the request Entered details are saved and a supported fallback is offered. Saved order number Enter saved order number Saved refund reason Enter saved refund reason Saved requested amount Enter saved requested amount Resume or contact support Purpose and refusal effect The form explains why “Resume or contact support” is requested and what happens if it is not used.","annotations":["In “Refund form loops after submission”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"dead-end-scenario-1","title":"Refund form loops after submission","context":"Order support","journeyStage":"Account Management","summary":"A fictional refund form accepts every field, then returns to the first screen with “Something went wrong” and no saved state or alternative route.","problematic":{"label":"Submit refund request","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Submit refund request"},{"id":"problematic-2-body","type":"text","text":"The form loops to an empty first screen without identifying a fix.","tone":"warning"},{"id":"problematic-3-input","type":"input","label":"Order number","placeholder":"Enter order number"},{"id":"problematic-4-input","type":"input","label":"Refund reason","placeholder":"Enter refund reason"},{"id":"problematic-5-input","type":"input","label":"Requested amount","placeholder":"Enter requested amount"},{"id":"problematic-6-button","type":"button","text":"Try again","emphasis":"primary"}],"annotations":[{"targetId":"problematic-6-button","text":"In “Refund form loops after submission”, this element shows how dead end can shape the decision."}]},"neutral":{"label":"We could not submit the request","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"We could not submit the request"},{"id":"neutral-2-body","type":"text","text":"Entered details are saved and a supported fallback is offered.","tone":"default"},{"id":"neutral-3-input","type":"input","label":"Saved order number","placeholder":"Enter saved order number"},{"id":"neutral-4-input","type":"input","label":"Saved refund reason","placeholder":"Enter saved refund reason"},{"id":"neutral-5-input","type":"input","label":"Saved requested amount","placeholder":"Enter saved requested amount"},{"id":"neutral-6-button","type":"button","text":"Resume or contact support","emphasis":"secondary"},{"id":"neutral-7-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Resume or contact support” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-7-disclosure","text":"In “Refund form loops after submission”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this order support example, the obstacle is: “The form loops to an empty first screen without identifying a fix.” Evidence should show whether the alternative remains usable and whether “Resume or contact support” reaches the represented state. A customer may abandon a valid request after repeating work without a way to complete or recover.","fairDesignPrinciple":"Preserve entered data, explain the specific error and provide a tested fallback route with a reference number.","reviewPrompts":["How many steps, waits and channel changes separate “Try again” from the completed order support outcome?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “The interface represents or reasonably implies that the outcome is available”?","Measure the same task through the clearest available route: does the effort difference persist once “General outage affecting all paths” is accounted for?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side order support interface showing “Submit refund request” and the clearer alternative “We could not submit the request”.","provenance":"Original hypothetical order support example created for this library; no real business, product or interface is depicted."},{"id":"dead-end-scenario-2","title":"Cancellation confirmation changes no account state","context":"Subscription account","journeyStage":"Cancellation","summary":"A fictional service shows “Cancellation complete” but returns the user to an active-plan dashboard and continues renewal without a receipt or status event.","problematic":{"label":"Cancellation complete","layout":"cancellation-flow","elements":[{"id":"problematic-1-heading","type":"heading","text":"Cancellation complete"},{"id":"problematic-2-body","type":"text","text":"The plan remains active and no confirmation record exists.","tone":"warning"},{"id":"problematic-3-step","type":"step","label":"Blocking step: Back to account","status":"current"},{"id":"problematic-4-step","type":"step","label":"Obscured outcome: Download confirmation","status":"current"}],"annotations":[{"targetId":"problematic-4-step","text":"In “Cancellation confirmation changes no account state”, this element shows how dead end can shape the decision."}]},"neutral":{"label":"Plan ends on 30 September","layout":"cancellation-flow","elements":[{"id":"neutral-1-heading","type":"heading","text":"Plan ends on 30 September"},{"id":"neutral-2-body","type":"text","text":"The account status, renewal setting and receipt all reflect the completed request.","tone":"default"},{"id":"neutral-3-step","type":"step","label":"Completion step: Download confirmation","status":"completed"},{"id":"neutral-4-step","type":"step","label":"Recorded outcome: Back to account","status":"completed"},{"id":"neutral-5-badge","type":"badge","text":"Request recorded: Download confirmation","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Cancellation confirmation changes no account state”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this subscription account example, the obstacle is: “The plan remains active and no confirmation record exists.” Evidence should show whether the alternative remains usable and whether “Download confirmation” reaches the represented state. The represented outcome is not reached, leaving the subscriber exposed to another charge.","fairDesignPrinciple":"Update the account state atomically, display the effective date and issue a durable receipt that support can verify.","reviewPrompts":["How many steps, waits and channel changes separate “Back to account” from the completed subscription account outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “Repeated execution cannot reach that outcome under controlled conditions”?","Measure the same task through the clearest available route: does the effort difference persist once “validation error caused by invalid fixture input” is accounted for?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side subscription account interface showing “Cancellation complete” and the clearer alternative “Plan ends on 30 September”.","provenance":"Original hypothetical subscription account example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Provide a functional completion route, preserve progress, and surface recoverable errors equally across options.","whyProblematic":"A consumer-favourable route cannot reach its represented outcome and instead loops, stalls or loses progress. A route represents that a request can complete but then loops, errors or changes no durable state, without a working recovery path or confirmation record. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The interface represents or reasonably implies that the outcome is available.","Repeated execution cannot reach that outcome under controlled conditions.","A business-favoured route remains functional or the failure systematically burdens the alternative.","Exclude or qualify the label where general outage affecting all paths.","Exclude or qualify the label where validation error caused by invalid fixture input.","Exclude or qualify the label where clearly unavailable option."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Try again” from the completed order support outcome?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “The interface represents or reasonably implies that the outcome is available”?","Measure the same task through the clearest available route: does the effort difference persist once “General outage affecting all paths” is accounted for?","How many steps, waits and channel changes separate “Back to account” from the completed subscription account outcome?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “Repeated execution cannot reach that outcome under controlled conditions”?","Measure the same task through the clearest available route: does the effort difference persist once “validation error caused by invalid fixture input” is accounted for?","Which complete journey evidence supports or contradicts the dead end classification?"],"evidence":["Versioned captures of the Account Management and Cancellation states before, during and after the relevant decision","Configuration, content and event records supporting the observed dead end mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["obstructed-alternative","cancellation-friction","account-deletion-obstruction"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-ucpd-2005-29"],"altText":"Side-by-side order support interface showing “Submit refund request” and the clearer alternative “We could not submit the request”.","provenance":"Original hypothetical order support example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Disguised advertisement or action: definition, examples and fairer design","slug":"disguised-advertisement-or-action","preferredName":"Disguised advertisement or action","directAnswer":"The label “Disguised advertisement or action” describes this recurring design mechanism: a promotional or biased action is presented as ordinary content or as a different control, causing interaction under a mistaken understanding. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A promotional or biased action is presented as ordinary content or as a different control, causing interaction under a mistaken understanding. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["disguised ad","native ad deception","fake close button"],"category":"Interface interference","family":"Interface interference","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Marketplace search","scenario":"A fictional marketplace gives a paid placement the same typography and ranking treatment as organic results, with “sponsored” hidden in a tooltip.","harm":"A shopper may treat commercial placement as an independent relevance judgment."},{"type":"Illustrative example","context":"Mobile upgrade interstitial","scenario":"A fictional app draws an “×” in the corner of an upgrade ad, but tapping it opens the purchase page instead of dismissing the ad.","harm":"The user activates a commercial action while reasonably expecting to close the message."}],"howItWorks":"A promotional or biased action is presented as ordinary content or as a different control, causing interaction under a mistaken understanding. A commercial placement or control adopts the appearance of a different familiar element, so the user activates advertising, purchase or navigation while expecting another result.","warningSigns":["The element's commercial or actual function is not apparent before interaction.","Visual or semantic cues mimic another content or control type.","The resulting action benefits the business or advertiser."],"harms":["A shopper may treat commercial placement as an independent relevance judgment.","The user activates a commercial action while reasonably expecting to close the message."],"legitimateUses":["A similar design should not be classified this way where effectively labelled advertisement distinguishable before interaction.","A similar design should not be classified this way where ordinary external link with an accurate label."],"problematicUi":{"label":"Top match for you","copy":"Top match for you The paid placement looks identical to an organic result. View top match View sponsored offer","annotations":["In “Sponsored result imitates an organic recommendation”, this element shows how disguised advertisement or action can shape the decision."]},"improvedUi":{"label":"Sponsored placement","copy":"Sponsored placement The commercial relationship is visible before the product claim and click. View sponsored offer View top match Price, period and commitment The price and material terms associated with “View sponsored offer” remain beside this choice.","annotations":["In “Sponsored result imitates an organic recommendation”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"disguised-advertisement-or-action-scenario-1","title":"Sponsored result imitates an organic recommendation","context":"Marketplace search","journeyStage":"Pricing","summary":"A fictional marketplace gives a paid placement the same typography and ranking treatment as organic results, with “sponsored” hidden in a tooltip.","problematic":{"label":"Top match for you","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Top match for you"},{"id":"problematic-2-body","type":"text","text":"The paid placement looks identical to an organic result.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"View top match","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"View sponsored offer","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Sponsored result imitates an organic recommendation”, this element shows how disguised advertisement or action can shape the decision."}]},"neutral":{"label":"Sponsored placement","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Sponsored placement"},{"id":"neutral-2-body","type":"text","text":"The commercial relationship is visible before the product claim and click.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"View sponsored offer","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"View top match","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “View sponsored offer” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Sponsored result imitates an organic recommendation”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “The paid placement looks identical to an organic result.” Its influence should be tested by comparing the consequence and usability of “View top match” with “View sponsored offer”. A shopper may treat commercial placement as an independent relevance judgment.","fairDesignPrinciple":"Label advertising at first exposure and keep the commercial marker visible beside the result and action.","reviewPrompts":["Do “View top match” and “View sponsored offer” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The element's commercial or actual function is not apparent before interaction”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Effectively labelled advertisement distinguishable before interaction”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side marketplace search interface showing “Top match for you” and the clearer alternative “Sponsored placement”.","provenance":"Original hypothetical marketplace search example created for this library; no real business, product or interface is depicted."},{"id":"disguised-advertisement-or-action-scenario-2","title":"Fake close control opens another promotion","context":"Mobile upgrade interstitial","journeyStage":"Pricing","summary":"A fictional app draws an “×” in the corner of an upgrade ad, but tapping it opens the purchase page instead of dismissing the ad.","problematic":{"label":"Limited upgrade","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"Limited upgrade"},{"id":"problematic-2-body","type":"text","text":"The familiar close symbol is wired to the upgrade route.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"×","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Close promotion","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Fake close control opens another promotion”, this element shows how disguised advertisement or action can shape the decision."}]},"neutral":{"label":"Optional upgrade","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Optional upgrade"},{"id":"neutral-2-body","type":"text","text":"Close dismisses the dialog; the upgrade button names its destination.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Close promotion","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"×","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “Close promotion” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Fake close control opens another promotion”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “The familiar close symbol is wired to the upgrade route.” Its influence should be tested by comparing the consequence and usability of “×” with “Close promotion”. The user activates a commercial action while reasonably expecting to close the message.","fairDesignPrinciple":"Make the close control perform only dismissal and label any purchase action separately.","reviewPrompts":["Do “×” and “Close promotion” receive comparable prominence and explain their consequences before activation?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “Visual or semantic cues mimic another content or control type”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “ordinary external link with an accurate label”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side mobile upgrade interstitial interface showing “Limited upgrade” and the clearer alternative “Optional upgrade”.","provenance":"Original hypothetical mobile upgrade interstitial example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Label advertising and action outcomes clearly before interaction and avoid mimicking unrelated controls or editorial content.","whyProblematic":"A promotional or biased action is presented as ordinary content or as a different control, causing interaction under a mistaken understanding. A commercial placement or control adopts the appearance of a different familiar element, so the user activates advertising, purchase or navigation while expecting another result. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The element's commercial or actual function is not apparent before interaction.","Visual or semantic cues mimic another content or control type.","The resulting action benefits the business or advertiser.","Exclude or qualify the label where effectively labelled advertisement distinguishable before interaction.","Exclude or qualify the label where ordinary external link with an accurate label."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “View top match” and “View sponsored offer” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The element's commercial or actual function is not apparent before interaction”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Effectively labelled advertisement distinguishable before interaction”?","Do “×” and “Close promotion” receive comparable prominence and explain their consequences before activation?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “Visual or semantic cues mimic another content or control type”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “ordinary external link with an accurate label”?","Which complete journey evidence supports or contradicts the disguised advertisement or action classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed disguised advertisement or action mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side marketplace search interface showing “Top match for you” and the clearer alternative “Sponsored placement”.","provenance":"Original hypothetical marketplace search example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Drip pricing and hidden mandatory charges","slug":"drip-pricing-and-hidden-charges","preferredName":"Drip pricing and hidden charges","directAnswer":"Drip pricing reveals unavoidable or foreseeable charges only after a consumer has started a transaction. Existing EU rules already govern price information and misleading omissions in many consumer journeys. Not every later price change is unlawful, for example, genuinely optional choices can alter a total, but mandatory charges should be identified and included at the legally relevant time.","definition":"A mandatory or foreseeable charge is omitted, obscured or revealed only after the user has invested effort in the transaction. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["partitioned pricing","hidden mandatory fees","progressive fee disclosure","hidden charges","drip pricing","late mandatory fee"],"category":"Pricing","family":"Sneaking","journeyStages":["Pricing","Checkout","Subscription"],"jurisdiction":"European Union","status":"Current law","legalBasis":[{"provision":"UCPD Articles 6 to 7 and Annex I","sourceIds":["eu-ucpd-2005-29"],"classification":"Express rule","explanation":"Price and the manner in which it is calculated can be material information; misleading actions, omissions and specified bait practices require assessment."},{"provision":"CRD Article 6","sourceIds":["eu-crd-2011-83"],"classification":"Express rule","explanation":"Before a distance contract, traders must provide the total price inclusive of taxes and, where it cannot reasonably be calculated, the calculation method and additional charges."}],"examples":[{"type":"Illustrative example","context":"Ticket booking","scenario":"A fictional booking site shows a €40 ticket through search and selection but adds a compulsory €9 service fee only after card details are entered.","harm":"Late disclosure can make the offer appear cheaper and exploit effort already invested in checkout."},{"type":"Illustrative example","context":"Accommodation booking","scenario":"A fictional hotel result advertises €120 per night while a compulsory €28 nightly facility fee appears only in the final booking summary.","harm":"Travellers may compare and select rooms using an understated unavoidable cost."},{"type":"Illustrative example","context":"Event tickets","scenario":"A ticket is advertised at €40, but a mandatory €6 fulfilment charge appears only after seat selection and cannot be removed for any available delivery method.","harm":"The buyer may compare offers and invest effort using a price that was never actually available."},{"type":"Illustrative example","context":"Food delivery","scenario":"A basket total excludes a compulsory small-order fee that is added at the final payment step even though basket value and delivery address were known earlier.","harm":"The consumer may proceed past comparison and abandon or overpay after a late unavoidable increase."}],"howItWorks":"A mandatory or foreseeable charge is omitted, obscured or revealed only after the user has invested effort in the transaction. A foreseeable compulsory charge is withheld until later effort has been invested, making the offer appear cheaper at search, selection or comparison.","warningSigns":["A price is displayed before a later charge becomes visible.","The charge is mandatory, transaction-linked or reasonably foreseeable for the selected path.","Earlier presentation does not effectively communicate amount, method or inclusion status."],"harms":["Late disclosure can make the offer appear cheaper and exploit effort already invested in checkout.","Travellers may compare and select rooms using an understated unavoidable cost."],"legitimateUses":["A similar design should not be classified this way where optional add-on deliberately selected.","A similar design should not be classified this way where variable charge impossible to calculate but calculation method and applicability clearly disclosed.","A similar design should not be classified this way where government charge clearly disclosed at the initial price."],"problematicUi":{"label":"Ticket · €40","copy":"Ticket · €40 A mandatory €9 service fee appears only after card entry. Continue to payment Pay €49","annotations":["In “Mandatory service fee revealed after payment details”, this element shows how hidden costs or drip pricing can shape the decision."]},"improvedUi":{"label":"Ticket total · €49","copy":"Ticket total · €49 The €40 base amount and €9 compulsory service fee appear together. Amount affected €49 Pay €49 Pay €49 Continue to payment Payable total and selected items The summary shows the line items and total before “Pay €49” is activated.","annotations":["In “Mandatory service fee revealed after payment details”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"hidden-costs-or-drip-pricing-scenario-1","title":"Mandatory service fee revealed after payment details","context":"Ticket booking","journeyStage":"Checkout","summary":"A fictional booking site shows a €40 ticket through search and selection but adds a compulsory €9 service fee only after card details are entered.","problematic":{"label":"Ticket · €40","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Ticket · €40"},{"id":"problematic-2-body","type":"text","text":"A mandatory €9 service fee appears only after card entry.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Continue to payment","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Pay €49","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Mandatory service fee revealed after payment details”, this element shows how hidden costs or drip pricing can shape the decision."}]},"neutral":{"label":"Ticket total · €49","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Ticket total · €49"},{"id":"neutral-2-body","type":"text","text":"The €40 base amount and €9 compulsory service fee appear together.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€49","detail":"Pay €49"},{"id":"neutral-4-button","type":"button","text":"Pay €49","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Continue to payment","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Pay €49” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Mandatory service fee revealed after payment details”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “A mandatory €9 service fee appears only after card entry.” Review the timing and affirmative selection needed before “Continue to payment” changes price, product or recurring liability. Late disclosure can make the offer appear cheaper and exploit effort already invested in checkout.","fairDesignPrinciple":"Show the foreseeable payable total and compulsory fee near the first material price and preserve it throughout the journey.","reviewPrompts":["Which affirmative action authorises “Continue to payment”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “A price is displayed before a later charge becomes visible”?","Which specific affirmative event creates the final commercial state, and could “Optional add-on deliberately selected” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side ticket booking interface showing “Ticket · €40” and the clearer alternative “Ticket total · €49”.","provenance":"Original hypothetical ticket booking example created for this library; no real business, product or interface is depicted."},{"id":"hidden-costs-or-drip-pricing-scenario-2","title":"Resort fee appears after room selection","context":"Accommodation booking","journeyStage":"Pricing","summary":"A fictional hotel result advertises €120 per night while a compulsory €28 nightly facility fee appears only in the final booking summary.","problematic":{"label":"Room · €120/night","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Room · €120/night"},{"id":"problematic-2-body","type":"text","text":"The unavoidable €28 nightly fee is omitted from search and room cards.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Select room","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Choose at €148/night","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Resort fee appears after room selection”, this element shows how hidden costs or drip pricing can shape the decision."}]},"neutral":{"label":"Room total · €148/night","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Room total · €148/night"},{"id":"neutral-2-body","type":"text","text":"The base price and compulsory facility fee are shown before selection.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Displayed amount","amount":"€148","detail":"Choose at €148/night"},{"id":"neutral-4-button","type":"button","text":"Choose at €148/night","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Select room","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Choose at €148/night” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Resort fee appears after room selection”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “The unavoidable €28 nightly fee is omitted from search and room cards.” Review the timing and affirmative selection needed before “Select room” changes price, product or recurring liability. Travellers may compare and select rooms using an understated unavoidable cost.","fairDesignPrinciple":"Include compulsory charges in the comparable total and explain any component breakdown before room selection.","reviewPrompts":["Which affirmative action authorises “Select room”, and where is the resulting price, product or recurring state shown before commitment?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The charge is mandatory, transaction-linked or reasonably foreseeable for the selected path”?","Which specific affirmative event creates the final commercial state, and could “variable charge impossible to calculate but calculation method and applicability clearly disclosed” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side accommodation booking interface showing “Room · €120/night” and the clearer alternative “Room total · €148/night”.","provenance":"Original hypothetical accommodation booking example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Display the total including mandatory charges as soon as the necessary information is available, explain any genuinely variable component, and separate optional extras without preselection. Preserve an itemised breakdown so users can understand rather than reconstruct the total.","whyProblematic":"Price evolution can reflect genuine user choices or unknown delivery facts. Risk centres on whether a fee is unavoidable or foreseeable, when the trader had enough information to calculate it, how the headline framed the offer and whether late disclosure changed the consumer's decision.","contextFactors":["A price is displayed before a later charge becomes visible.","The charge is mandatory, transaction-linked or reasonably foreseeable for the selected path.","Earlier presentation does not effectively communicate amount, method or inclusion status.","Exclude or qualify the label where optional add-on deliberately selected.","Exclude or qualify the label where variable charge impossible to calculate but calculation method and applicability clearly disclosed.","Exclude or qualify the label where government charge clearly disclosed at the initial price."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which affirmative action authorises “Continue to payment”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “A price is displayed before a later charge becomes visible”?","Which specific affirmative event creates the final commercial state, and could “Optional add-on deliberately selected” explain the observed outcome instead?","Which affirmative action authorises “Select room”, and where is the resulting price, product or recurring state shown before commitment?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The charge is mandatory, transaction-linked or reasonably foreseeable for the selected path”?","Which specific affirmative event creates the final commercial state, and could “variable charge impossible to calculate but calculation method and applicability clearly disclosed” explain the observed outcome instead?","Which complete journey evidence supports or contradicts the hidden costs or drip pricing classification?"],"evidence":["Versioned captures of the Checkout and Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed hidden costs or drip pricing mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["hidden-information","preselection-and-defaults","sneak-into-basket","hidden-subscription-or-forced-continuity","bait-and-switch"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29","eu-crd-2011-83","eu-dfa-call-evidence-14622"],"altText":"Side-by-side ticket booking interface showing “Ticket · €40” and the clearer alternative “Ticket total · €49”.","provenance":"Original hypothetical ticket booking example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"False hierarchy in digital interfaces","slug":"false-hierarchy","preferredName":"False hierarchy","directAnswer":"False hierarchy makes one option look materially more important than another even though users need a genuine choice. Size, colour, contrast or placement may steer attention away from a refusal or less profitable option. EU law does not ban every visual hierarchy; the legal assessment depends on context, likely transactional impact and any sector-specific rule.","definition":"Parallel options are presented as if one were hierarchically primary, giving a business-favoured option materially greater visual or interactive prominence. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["visual interference","asymmetric choice presentation","visual prominence","misdirection"],"category":"Choice architecture","family":"Interface interference","journeyStages":["Signup","Pricing","Checkout","Subscription"],"jurisdiction":"European Union","status":"Current law","legalBasis":[{"provision":"UCPD Articles 5 to 7","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Presentation can matter when assessing professional diligence, misleading action or omission and effects on the average consumer's transactional decision."},{"provision":"DSA Article 25","sourceIds":["eu-dsa-2022-2065"],"classification":"Express rule","explanation":"For providers of online platforms, interface design must not deceive, manipulate or otherwise materially distort or impair recipients' ability to make free and informed decisions. Article 25(2) must also be checked where the UCPD or GDPR already covers the practice."}],"examples":[{"type":"Illustrative example","context":"Privacy choice","scenario":"A fictional service displays a full-width coloured “Accept all” button while “Use necessary data only” is a faint text link after several paragraphs.","harm":"People may overlook a genuine lower-data option because the visual hierarchy favours acceptance."},{"type":"Illustrative example","context":"Software trial","scenario":"A fictional software trial uses a large highlighted annual-upgrade card and places the existing monthly option as low-contrast text beneath testimonials.","harm":"A subscriber may enter a longer commitment without noticing the viable monthly alternative."},{"type":"Illustrative example","context":"Subscription trial","scenario":"A video service displays a large high-contrast ‘Start paid trial’ button, while the option to continue with a limited free plan appears as low-contrast text outside the main card.","harm":"A user may overlook a genuine alternative and enter a recurring contract they did not intend to prioritise."},{"type":"Illustrative example","context":"Privacy choice during signup","scenario":"The ‘Accept all’ control fills the screen width, while ‘Use necessary data only’ is presented as a faint link beneath unrelated explanatory copy.","harm":"The visual imbalance may interfere with an informed choice and obscure the consequences of each option."}],"howItWorks":"Parallel options are presented as if one were hierarchically primary, giving a business-favoured option materially greater visual or interactive prominence. Parallel outcomes receive unequal size, contrast, position or affordance, making the favoured route feel like the primary action rather than one substantive option among peers.","warningSigns":["Two or more options address the same decision.","The business-favoured option is identified with evidence.","Measured prominence differs across at least two independent visual or affordance signals."],"harms":["People may overlook a genuine lower-data option because the visual hierarchy favours acceptance.","A subscriber may enter a longer commitment without noticing the viable monthly alternative."],"legitimateUses":["A similar design should not be classified this way where primary progress versus back navigation that does not represent parallel substantive outcomes.","A similar design should not be classified this way where visual difference with no identifiable business-favoured consequence."],"problematicUi":{"label":"Choose your privacy settings","copy":"Choose your privacy settings Acceptance dominates the panel and the lower-data route is visually detached. Accept all Use necessary data only","annotations":["In “Consent choices with unequal prominence”, this element shows how false hierarchy can shape the decision."]},"improvedUi":{"label":"Choose your privacy settings","copy":"Choose your privacy settings Necessary-only and optional choices are visible together with equal clarity. Use necessary data only Accept all Choice consequences The consequence of selecting “Use necessary data only” is displayed beside the option.","annotations":["In “Consent choices with unequal prominence”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"false-hierarchy-scenario-1","title":"Consent choices with unequal prominence","context":"Privacy choice","journeyStage":"Signup","summary":"A fictional service displays a full-width coloured “Accept all” button while “Use necessary data only” is a faint text link after several paragraphs.","problematic":{"label":"Choose your privacy settings","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Choose your privacy settings"},{"id":"problematic-2-body","type":"text","text":"Acceptance dominates the panel and the lower-data route is visually detached.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Accept all","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Use necessary data only","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Consent choices with unequal prominence”, this element shows how false hierarchy can shape the decision."}]},"neutral":{"label":"Choose your privacy settings","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose your privacy settings"},{"id":"neutral-2-body","type":"text","text":"Necessary-only and optional choices are visible together with equal clarity.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Use necessary data only","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Accept all","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Use necessary data only” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Consent choices with unequal prominence”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the signup decision. The problematic state shows: “Acceptance dominates the panel and the lower-data route is visually detached.” Its influence should be tested by comparing the consequence and usability of “Accept all” with “Use necessary data only”. People may overlook a genuine lower-data option because the visual hierarchy favours acceptance.","fairDesignPrinciple":"Give materially different privacy choices stable labels, comparable prominence and concise consequences.","reviewPrompts":["Do “Accept all” and “Use necessary data only” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “Two or more options address the same decision”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Primary progress versus back navigation that does not represent parallel substantive outcomes”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side privacy choice interface showing “Choose your privacy settings” and the clearer alternative “Choose your privacy settings”.","provenance":"Original hypothetical privacy choice example created for this library; no real business, product or interface is depicted."},{"id":"false-hierarchy-scenario-2","title":"Annual upgrade dominates monthly continuation","context":"Software trial","journeyStage":"Subscription","summary":"A fictional software trial uses a large highlighted annual-upgrade card and places the existing monthly option as low-contrast text beneath testimonials.","problematic":{"label":"Recommended annual plan","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Recommended annual plan"},{"id":"problematic-2-body","type":"text","text":"The existing monthly path is separated and de-emphasised.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€240","detail":"€240 billed now"},{"id":"problematic-4-link","type":"link","text":"Choose monthly or annual","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Annual upgrade dominates monthly continuation”, this element shows how false hierarchy can shape the decision."}]},"neutral":{"label":"Compare billing options","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Compare billing options"},{"id":"neutral-2-body","type":"text","text":"Annual and monthly prices, commitments and controls receive comparable treatment.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Choose monthly or annual","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"€240 billed now","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Choose monthly or annual” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Annual upgrade dominates monthly continuation”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the subscription decision. The problematic state shows: “The existing monthly path is separated and de-emphasised.” Its influence should be tested by comparing the consequence and usability of “€240 billed now” with “Choose monthly or annual”. A subscriber may enter a longer commitment without noticing the viable monthly alternative.","fairDesignPrinciple":"Show annual and monthly options together with total price, billing period and equivalent controls.","reviewPrompts":["Do “€240 billed now” and “Choose monthly or annual” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The business-favoured option is identified with evidence”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “visual difference with no identifiable business-favoured consequence”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side software trial interface showing “Recommended annual plan” and the clearer alternative “Compare billing options”.","provenance":"Original hypothetical software trial example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Present materially different choices with comparable prominence, plain labels and consequences close to the control. Hierarchy can still guide reading order, but should not hide or de-emphasise a genuine refusal or lower-cost path.","whyProblematic":"Visual priority is a normal design tool. Risk increases where it is combined with unclear wording, repeated prompts, missing consequences or a commercially preferred default, and where the likely effect is to change a consumer's decision rather than simply improve comprehension.","contextFactors":["Two or more options address the same decision.","The business-favoured option is identified with evidence.","Measured prominence differs across at least two independent visual or affordance signals.","Exclude or qualify the label where primary progress versus back navigation that does not represent parallel substantive outcomes.","Exclude or qualify the label where visual difference with no identifiable business-favoured consequence."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Accept all” and “Use necessary data only” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “Two or more options address the same decision”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Primary progress versus back navigation that does not represent parallel substantive outcomes”?","Do “€240 billed now” and “Choose monthly or annual” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The business-favoured option is identified with evidence”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “visual difference with no identifiable business-favoured consequence”?","Which complete journey evidence supports or contradicts the false hierarchy classification?"],"evidence":["Versioned captures of the Signup and Subscription states before, during and after the relevant decision","Configuration, content and event records supporting the observed false hierarchy mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen","Control defaults, validation rules and consent or selection state changes"],"related":["preselection-and-defaults","confirmshaming","hidden-information","misleading-reference-pricing"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29","eu-dsa-2022-2065","eu-dfa-call-evidence-14622"],"altText":"Side-by-side privacy choice interface showing “Choose your privacy settings” and the clearer alternative “Choose your privacy settings”.","provenance":"Original hypothetical privacy choice example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Countdown timer: definition, examples and fairer design","slug":"false-urgency-and-scarcity","preferredName":"Countdown timer","directAnswer":"The label “Countdown timer” describes this recurring design mechanism: a visible countdown applies time pressure, particularly where it resets, is personalised without disclosure or has no corresponding consequence at zero. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A visible countdown applies time pressure, particularly where it resets, is personalised without disclosure or has no corresponding consequence at zero. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["countdown pressure","scarcity cue","limited-time pressure","False urgency and scarcity","False urgency and scarcity cues","countdown scarcity","resetting timer"],"category":"Urgency","family":"Urgency","journeyStages":["Pricing","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Retail promotion","scenario":"A fictional retailer shows a fifteen-minute sale countdown that returns to fifteen minutes whenever the page reloads and the price never changes at zero.","harm":"The timer can manufacture urgency without a corresponding offer deadline."},{"type":"Illustrative example","context":"Ticket checkout","scenario":"A fictional ticket seller displays “Seats held for 02:00” although no seats are reserved and the timer simply restarts after zero.","harm":"A buyer may hurry through payment because the interface represents a protection that does not exist."}],"howItWorks":"A visible countdown applies time pressure, particularly where it resets, is personalised without disclosure or has no corresponding consequence at zero. A visible timer accelerates the decision, but its value, reset behaviour or expiry consequence is detached from a real offer or reservation event.","warningSigns":["A decreasing time representation is shown near a choice.","The stated or implied consequence at expiry is material.","Controlled replay can test reset and expiry behaviour."],"harms":["The timer can manufacture urgency without a corresponding offer deadline.","A buyer may hurry through payment because the interface represents a protection that does not exist."],"legitimateUses":["A similar design should not be classified this way where purely informational clock.","A similar design should not be classified this way where genuine fixed event deadline that produces the represented consequence.","A similar design should not be classified this way where session timeout required for security and accurately described."],"problematicUi":{"label":"Sale ends in","copy":"Sale ends in The timer restarts and has no effect on price or availability. Displayed time 14:59 Expiry consequence No corresponding expiry event or reservation state is shown with the timer.","annotations":["In “Sale timer resets on reload”, this element shows how countdown timer can shape the decision."]},"improvedUi":{"label":"Offer ends at 18:00 CET","copy":"Offer ends at 18:00 CET The deadline is fixed and the stated discount ends at that time. Displayed time 42 minutes remaining Expiry consequence The expiry event and resulting reservation or offer state are shown with the timer. View the source and period for “42 minutes remaining”","annotations":["In “Sale timer resets on reload”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"countdown-timer-scenario-1","title":"Sale timer resets on reload","context":"Retail promotion","journeyStage":"Pricing","summary":"A fictional retailer shows a fifteen-minute sale countdown that returns to fifteen minutes whenever the page reloads and the price never changes at zero.","problematic":{"label":"Sale ends in","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Sale ends in"},{"id":"problematic-2-body","type":"text","text":"The timer restarts and has no effect on price or availability.","tone":"warning"},{"id":"problematic-3-timer","type":"timer","label":"Displayed time","value":"14:59"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Expiry consequence","content":"No corresponding expiry event or reservation state is shown with the timer.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Sale timer resets on reload”, this element shows how countdown timer can shape the decision."}]},"neutral":{"label":"Offer ends at 18:00 CET","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Offer ends at 18:00 CET"},{"id":"neutral-2-body","type":"text","text":"The deadline is fixed and the stated discount ends at that time.","tone":"default"},{"id":"neutral-3-timer","type":"timer","label":"Displayed time","value":"42 minutes remaining"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Expiry consequence","content":"The expiry event and resulting reservation or offer state are shown with the timer.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “42 minutes remaining”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Sale timer resets on reload”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the pricing decision. The cue “14:59” should correspond to a defined operating state and a real consequence. The example instead states: “The timer restarts and has no effect on price or availability.” The timer can manufacture urgency without a corresponding offer deadline.","fairDesignPrinciple":"Use a countdown only for a genuine deadline and explain exactly what changes when it reaches zero.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “14:59”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “A decreasing time representation is shown near a choice”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “Purely informational clock”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side retail promotion interface showing “Sale ends in” and the clearer alternative “Offer ends at 18:00 CET”.","provenance":"Original hypothetical retail promotion example created for this library; no real business, product or interface is depicted."},{"id":"countdown-timer-scenario-2","title":"Reservation timer has no inventory hold","context":"Ticket checkout","journeyStage":"Checkout","summary":"A fictional ticket seller displays “Seats held for 02:00” although no seats are reserved and the timer simply restarts after zero.","problematic":{"label":"Seats held for","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Seats held for"},{"id":"problematic-2-body","type":"text","text":"No inventory state corresponds to the repeating countdown.","tone":"warning"},{"id":"problematic-3-timer","type":"timer","label":"Displayed time","value":"02:00"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Expiry consequence","content":"No corresponding expiry event or reservation state is shown with the timer.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Reservation timer has no inventory hold”, this element shows how countdown timer can shape the decision."}]},"neutral":{"label":"Reservation valid until 14:32","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Reservation valid until 14:32"},{"id":"neutral-2-body","type":"text","text":"The deadline is tied to the identified seats and releases them at expiry.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"01:42 remaining","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “01:42 remaining”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Reservation timer has no inventory hold”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the checkout decision. The cue “02:00” should correspond to a defined operating state and a real consequence. The example instead states: “No inventory state corresponds to the repeating countdown.” A buyer may hurry through payment because the interface represents a protection that does not exist.","fairDesignPrinciple":"Connect the timer to a real reservation record and show a stable exit when no hold exists.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “02:00”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The stated or implied consequence at expiry is material”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “genuine fixed event deadline that produces the represented consequence”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side ticket checkout interface showing “Seats held for” and the clearer alternative “Reservation valid until 14:32”.","provenance":"Original hypothetical ticket checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use timers only for genuine deadlines, keep them consistent, and make the represented consequence occur at expiry.","whyProblematic":"A visible countdown applies time pressure, particularly where it resets, is personalised without disclosure or has no corresponding consequence at zero. A visible timer accelerates the decision, but its value, reset behaviour or expiry consequence is detached from a real offer or reservation event. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A decreasing time representation is shown near a choice.","The stated or implied consequence at expiry is material.","Controlled replay can test reset and expiry behaviour.","Exclude or qualify the label where purely informational clock.","Exclude or qualify the label where genuine fixed event deadline that produces the represented consequence.","Exclude or qualify the label where session timeout required for security and accurately described."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which timestamped inventory, reservation, demand or offer event substantiates “14:59”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “A decreasing time representation is shown near a choice”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “Purely informational clock”?","Which timestamped inventory, reservation, demand or offer event substantiates “02:00”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The stated or implied consequence at expiry is material”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “genuine fixed event deadline that produces the represented consequence”?","Which complete journey evidence supports or contradicts the countdown timer classification?"],"evidence":["Versioned captures of the Pricing and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed countdown timer mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message"],"related":["confirmshaming","hidden-information","low-stock-claim","high-demand-claim","limited-time-or-reservation-claim"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side retail promotion interface showing “Sale ends in” and the clearer alternative “Offer ends at 18:00 CET”.","provenance":"Original hypothetical retail promotion example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Feedforward ambiguity: definition, examples and fairer design","slug":"feedforward-ambiguity","preferredName":"Feedforward ambiguity","directAnswer":"The label “Feedforward ambiguity” describes this recurring design mechanism: a control does not let the user reasonably predict its material outcome before activation. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A control does not let the user reasonably predict its material outcome before activation. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["ambiguous action","misleading action","ambiguous CTA"],"category":"Interface interference","family":"Interface interference","journeyStages":["Checkout","Account Management"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"One-page checkout","scenario":"A fictional checkout ends with a button labelled only “Continue”, although activating it immediately places the €86 order.","harm":"A shopper cannot predict that the next action creates a payment obligation."},{"type":"Illustrative example","context":"Profile privacy","scenario":"A fictional profile uses a switch labelled “Visibility” without saying whether the current position makes activity public or private.","harm":"A person may expose account activity while believing they restricted it."}],"howItWorks":"A control does not let the user reasonably predict its material outcome before activation. The control fails to predict the action or state change it triggers, leaving the user unable to distinguish continuation, submission, payment or publication before activation.","warningSigns":["The action has a material outcome.","Label and nearby explanation fail to communicate that outcome.","Execution evidence shows a consequence that a reasonable interpretation would not predict."],"harms":["A shopper cannot predict that the next action creates a payment obligation.","A person may expose account activity while believing they restricted it."],"legitimateUses":["A similar design should not be classified this way where conventional navigation with no material commitment.","A similar design should not be classified this way where clearly disclosed intermediate step before any consequence."],"problematicUi":{"label":"Review complete","copy":"Review complete The final control gives no indication that it submits payment. Continue Place order and pay €86","annotations":["In ““Continue” places a paid order”, this element shows how feedforward ambiguity can shape the decision."]},"improvedUi":{"label":"Ready to place order","copy":"Ready to place order The action states the purchase outcome and amount. Amount affected €86 Place order and pay €86 Place order and pay €86 Continue Payable total and selected items The summary shows the line items and total before “Place order and pay €86” is activated.","annotations":["In ““Continue” places a paid order”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"feedforward-ambiguity-scenario-1","title":"“Continue” places a paid order","context":"One-page checkout","journeyStage":"Checkout","summary":"A fictional checkout ends with a button labelled only “Continue”, although activating it immediately places the €86 order.","problematic":{"label":"Review complete","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Review complete"},{"id":"problematic-2-body","type":"text","text":"The final control gives no indication that it submits payment.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Continue","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Place order and pay €86","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In ““Continue” places a paid order”, this element shows how feedforward ambiguity can shape the decision."}]},"neutral":{"label":"Ready to place order","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Ready to place order"},{"id":"neutral-2-body","type":"text","text":"The action states the purchase outcome and amount.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€86","detail":"Place order and pay €86"},{"id":"neutral-4-button","type":"button","text":"Place order and pay €86","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Continue","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Place order and pay €86” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In ““Continue” places a paid order”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the checkout decision. The problematic state shows: “The final control gives no indication that it submits payment.” Its influence should be tested by comparing the consequence and usability of “Continue” with “Place order and pay €86”. A shopper cannot predict that the next action creates a payment obligation.","fairDesignPrinciple":"Name the material outcome and payable total directly on the final control, before activation creates the order.","reviewPrompts":["Do “Continue” and “Place order and pay €86” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The action has a material outcome”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Conventional navigation with no material commitment”?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side one-page checkout interface showing “Review complete” and the clearer alternative “Ready to place order”.","provenance":"Original hypothetical one-page checkout example created for this library; no real business, product or interface is depicted."},{"id":"feedforward-ambiguity-scenario-2","title":"Sharing toggle has no visible state meaning","context":"Profile privacy","journeyStage":"Account Management","summary":"A fictional profile uses a switch labelled “Visibility” without saying whether the current position makes activity public or private.","problematic":{"label":"Visibility","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"Visibility"},{"id":"problematic-2-body","type":"text","text":"The switch position has no explanatory state or audience.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"On","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: On","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Sharing toggle has no visible state meaning”, this element shows how feedforward ambiguity can shape the decision."}]},"neutral":{"label":"Activity visibility · Private","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Activity visibility · Private"},{"id":"neutral-2-body","type":"text","text":"The control names the current audience and the alternative outcome.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Change to public","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Change to public","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Change to public” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Sharing toggle has no visible state meaning”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the account management decision. The problematic state shows: “The switch position has no explanatory state or audience.” Its influence should be tested by comparing the consequence and usability of “On” with “Change to public”. A person may expose account activity while believing they restricted it.","fairDesignPrinciple":"State the current audience and the effect of changing the control before saving.","reviewPrompts":["Do “On” and “Change to public” receive comparable prominence and explain their consequences before activation?","Test the control across refresh, device and account states; is “Label and nearby explanation fail to communicate that outcome” still observable after persistence is considered?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “clearly disclosed intermediate step before any consequence”?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side profile privacy interface showing “Visibility” and the clearer alternative “Activity visibility · Private”.","provenance":"Original hypothetical profile privacy example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Name the material consequence in the action label or immediately adjacent disclosure before activation.","whyProblematic":"A control does not let the user reasonably predict its material outcome before activation. The control fails to predict the action or state change it triggers, leaving the user unable to distinguish continuation, submission, payment or publication before activation. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The action has a material outcome.","Label and nearby explanation fail to communicate that outcome.","Execution evidence shows a consequence that a reasonable interpretation would not predict.","Exclude or qualify the label where conventional navigation with no material commitment.","Exclude or qualify the label where clearly disclosed intermediate step before any consequence."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Continue” and “Place order and pay €86” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The action has a material outcome”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Conventional navigation with no material commitment”?","Do “On” and “Change to public” receive comparable prominence and explain their consequences before activation?","Test the control across refresh, device and account states; is “Label and nearby explanation fail to communicate that outcome” still observable after persistence is considered?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “clearly disclosed intermediate step before any consequence”?","Which complete journey evidence supports or contradicts the feedforward ambiguity classification?"],"evidence":["Versioned captures of the Checkout and Account Management states before, during and after the relevant decision","Configuration, content and event records supporting the observed feedforward ambiguity mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-ucpd-2005-29"],"altText":"Side-by-side one-page checkout interface showing “Review complete” and the clearer alternative “Ready to place order”.","provenance":"Original hypothetical one-page checkout example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Forced disclosure or excessive data request: definition, examples and fairer design","slug":"forced-action-and-data-disclosure","preferredName":"Forced disclosure or excessive data request","directAnswer":"The label “Forced disclosure or excessive data request” describes this recurring design mechanism: access or progression is conditioned on disclosing personal information that appears unnecessary, excessive or used for an insufficiently explained secondary purpose. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Access or progression is conditioned on disclosing personal information that appears unnecessary, excessive or used for an insufficiently explained secondary purpose. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["forced registration","privacy zuckering","bundled action","Forced action and data disclosure","Forced action and unnecessary data disclosure","excessive data requests","forced communication"],"category":"Forced action","family":"Forced action","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Furniture delivery estimate","scenario":"A fictional furniture shop requires a visitor to disclose an exact birth date and mobile number before showing whether delivery is available to the entered postcode.","harm":"The visitor must disclose identity and contact information that is unrelated to a preliminary delivery-availability check."},{"type":"Illustrative example","context":"Insurance comparison","scenario":"A fictional comparison tool requires occupation, exact birth date, mobile number and marketing preference before showing the plans that are available in a postcode.","harm":"The user may disclose more personal information than the preliminary comparison reasonably needs."}],"howItWorks":"Access or progression is conditioned on disclosing personal information that appears unnecessary, excessive or used for an insufficiently explained secondary purpose. The interface makes apparently disproportionate personal information a prerequisite and withholds the selected result when a field or permission is refused.","warningSigns":["Personal data is mandatory or refusal blocks a desired goal.","Necessity is apparently unrelated, disproportionate or unexplained.","The requested data creates a plausible privacy or choice detriment."],"harms":["The visitor must disclose identity and contact information that is unrelated to a preliminary delivery-availability check.","The user may disclose more personal information than the preliminary comparison reasonably needs."],"legitimateUses":["A similar design should not be classified this way where data evidently required for delivery, payment, security, age, safety or law.","A similar design should not be classified this way where voluntary field with a clear skip path and purpose."],"problematicUi":{"label":"Tell us who you are first","copy":"Tell us who you are first Birth date and mobile number block a postcode-based availability estimate. Exact date of birth Enter exact date of birth Mobile number Enter mobile number Delivery postcode Enter delivery postcode Submit personal details","annotations":["In “Exact birth date required for a delivery estimate”, this element shows how forced disclosure or excessive data request can shape the decision."]},"improvedUi":{"label":"Check delivery availability","copy":"Check delivery availability The estimate uses the postcode; contact details remain optional until booking. Delivery postcode Enter delivery postcode Show delivery estimate Purpose and refusal effect The form explains why “Show delivery estimate” is requested and what happens if it is not used.","annotations":["In “Exact birth date required for a delivery estimate”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"forced-disclosure-or-excessive-data-request-scenario-1","title":"Exact birth date required for a delivery estimate","context":"Furniture delivery estimate","journeyStage":"Pricing","summary":"A fictional furniture shop requires a visitor to disclose an exact birth date and mobile number before showing whether delivery is available to the entered postcode.","problematic":{"label":"Tell us who you are first","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Tell us who you are first"},{"id":"problematic-2-body","type":"text","text":"Birth date and mobile number block a postcode-based availability estimate.","tone":"warning"},{"id":"problematic-3-input","type":"input","label":"Exact date of birth","placeholder":"Enter exact date of birth"},{"id":"problematic-4-input","type":"input","label":"Mobile number","placeholder":"Enter mobile number"},{"id":"problematic-5-input","type":"input","label":"Delivery postcode","placeholder":"Enter delivery postcode"},{"id":"problematic-6-button","type":"button","text":"Submit personal details","emphasis":"primary"}],"annotations":[{"targetId":"problematic-6-button","text":"In “Exact birth date required for a delivery estimate”, this element shows how forced disclosure or excessive data request can shape the decision."}]},"neutral":{"label":"Check delivery availability","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Check delivery availability"},{"id":"neutral-2-body","type":"text","text":"The estimate uses the postcode; contact details remain optional until booking.","tone":"default"},{"id":"neutral-3-input","type":"input","label":"Delivery postcode","placeholder":"Enter delivery postcode"},{"id":"neutral-4-button","type":"button","text":"Show delivery estimate","emphasis":"secondary"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Show delivery estimate” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Exact birth date required for a delivery estimate”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the pricing goal. The panel states: “Birth date and mobile number block a postcode-based availability estimate.” Reviewers need to establish whether “Submit personal details” is necessary for the selected task or pressures the user into a separable action. The visitor must disclose identity and contact information that is unrelated to a preliminary delivery-availability check.","fairDesignPrinciple":"Use the postcode for the estimate, explain any genuinely necessary field and defer contact details until the visitor asks to book or save it.","reviewPrompts":["What functional need makes “Submit personal details” necessary for the furniture delivery estimate goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Personal data is mandatory or refusal blocks a desired goal”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Data evidently required for delivery, payment, security, age, safety or law”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side furniture delivery estimate interface showing “Tell us who you are first” and the clearer alternative “Check delivery availability”.","provenance":"Original hypothetical furniture delivery estimate example created for this library; no real business, product or interface is depicted."},{"id":"forced-disclosure-or-excessive-data-request-scenario-2","title":"Excessive details for product comparison","context":"Insurance comparison","journeyStage":"Pricing","summary":"A fictional comparison tool requires occupation, exact birth date, mobile number and marketing preference before showing the plans that are available in a postcode.","problematic":{"label":"Tell us everything first","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Tell us everything first"},{"id":"problematic-2-body","type":"text","text":"Four personal fields block access to a basic plan comparison.","tone":"warning"},{"id":"problematic-3-input","type":"input","label":"Occupation","placeholder":"Enter occupation"},{"id":"problematic-4-input","type":"input","label":"Exact date of birth","placeholder":"Enter exact date of birth"},{"id":"problematic-5-input","type":"input","label":"Mobile number","placeholder":"Enter mobile number"},{"id":"problematic-6-checkbox","type":"checkbox","label":"Receive comparison offers","checked":false},{"id":"problematic-7-button","type":"button","text":"Reveal plans","emphasis":"primary"}],"annotations":[{"targetId":"problematic-7-button","text":"In “Excessive details for product comparison”, this element shows how forced disclosure or excessive data request can shape the decision."}]},"neutral":{"label":"Compare available plans","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Compare available plans"},{"id":"neutral-2-body","type":"text","text":"Postcode and the minimum eligibility facts are requested with a reason.","tone":"default"},{"id":"neutral-3-input","type":"input","label":"Postcode","placeholder":"Enter postcode"},{"id":"neutral-4-input","type":"input","label":"Relevant eligibility facts","placeholder":"Enter relevant eligibility facts"},{"id":"neutral-5-button","type":"button","text":"Show plans","emphasis":"secondary"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Show plans” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Excessive details for product comparison”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the pricing goal. The panel states: “Four personal fields block access to a basic plan comparison.” Reviewers need to establish whether “Reveal plans” is necessary for the selected task or pressures the user into a separable action. The user may disclose more personal information than the preliminary comparison reasonably needs.","fairDesignPrinciple":"Ask only for information needed for the comparison, explain why each field matters and defer contact details until the user requests follow-up.","reviewPrompts":["What functional need makes “Reveal plans” necessary for the insurance comparison goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Necessity is apparently unrelated, disproportionate or unexplained”?","Could the stated purpose make this dependency genuinely necessary under the boundary “voluntary field with a clear skip path and purpose”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side insurance comparison interface showing “Tell us everything first” and the clearer alternative “Compare available plans”.","provenance":"Original hypothetical insurance comparison example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Request only data necessary for the current goal, make secondary uses optional, and explain purpose and consequences clearly.","whyProblematic":"Access or progression is conditioned on disclosing personal information that appears unnecessary, excessive or used for an insufficiently explained secondary purpose. The interface makes apparently disproportionate personal information a prerequisite and withholds the selected result when a field or permission is refused. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["Personal data is mandatory or refusal blocks a desired goal.","Necessity is apparently unrelated, disproportionate or unexplained.","The requested data creates a plausible privacy or choice detriment.","Exclude or qualify the label where data evidently required for delivery, payment, security, age, safety or law.","Exclude or qualify the label where voluntary field with a clear skip path and purpose."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["What functional need makes “Submit personal details” necessary for the furniture delivery estimate goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Personal data is mandatory or refusal blocks a desired goal”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Data evidently required for delivery, payment, security, age, safety or law”, and what product evidence would demonstrate that necessity?","What functional need makes “Reveal plans” necessary for the insurance comparison goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “Necessity is apparently unrelated, disproportionate or unexplained”?","Could the stated purpose make this dependency genuinely necessary under the boundary “voluntary field with a clear skip path and purpose”, and what product evidence would demonstrate that necessity?","Which complete journey evidence supports or contradicts the forced disclosure or excessive data request classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed forced disclosure or excessive data request mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["preselection-and-defaults","hidden-information","forced-registration","contact-harvesting-and-coerced-referrals","gamified-or-paid-access-coercion"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side furniture delivery estimate interface showing “Tell us who you are first” and the clearer alternative “Check delivery availability”.","provenance":"Original hypothetical furniture delivery estimate example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Forced or bundled consent: definition, examples and fairer design","slug":"forced-or-bundled-consent","preferredName":"Forced or bundled consent","directAnswer":"The label “Forced or bundled consent” describes this recurring design mechanism: access is conditioned on accepting optional or separable data uses, communications or permissions as one bundled choice. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Access is conditioned on accepting optional or separable data uses, communications or permissions as one bundled choice. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["take-it-or-leave-it consent","consent wall","bundled permission"],"category":"Forced action","family":"Forced action","journeyStages":["Signup","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"News site entry","scenario":"A fictional news service presents one accept control for essential storage, audience analytics, advertising profiles and partner sharing, while access is blocked.","harm":"A visitor cannot distinguish necessary operation from optional data uses or express separate choices."},{"type":"Illustrative example","context":"Ticket checkout","scenario":"A fictional ticket seller requires one checkbox that accepts the purchase terms, promotional messages and sharing with event partners.","harm":"Refusing unrelated marketing appears to prevent completion of the requested transaction."}],"howItWorks":"Access is conditioned on accepting optional or separable data uses, communications or permissions as one bundled choice. Several distinct processing purposes are collapsed into one take-it-or-leave-it permission, so a person cannot accept necessary operation without optional uses.","warningSigns":["Multiple consequences or purposes are attached to one acceptance control.","At least one consequence appears separable from the core function.","Refusal blocks or materially burdens access."],"harms":["A visitor cannot distinguish necessary operation from optional data uses or express separate choices.","Refusing unrelated marketing appears to prevent completion of the requested transaction."],"legitimateUses":["A similar design should not be classified this way where single necessary processing operation clearly explained.","A similar design should not be classified this way where bundle with granular equivalent controls and no penalty for refusal."],"problematicUi":{"label":"Accept and enter","copy":"Accept and enter Essential storage, analytics, advertising and partner sharing are one package. Accept everything Use necessary storage only","annotations":["In “Optional analytics bundled with access”, this element shows how forced or bundled consent can shape the decision."]},"improvedUi":{"label":"Choose data uses","copy":"Choose data uses Necessary storage is explained and optional purposes have separate controls. Use necessary storage only Accept everything Choice consequences The consequence of selecting “Use necessary storage only” is displayed beside the option.","annotations":["In “Optional analytics bundled with access”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"forced-or-bundled-consent-scenario-1","title":"Optional analytics bundled with access","context":"News site entry","journeyStage":"Signup","summary":"A fictional news service presents one accept control for essential storage, audience analytics, advertising profiles and partner sharing, while access is blocked.","problematic":{"label":"Accept and enter","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Accept and enter"},{"id":"problematic-2-body","type":"text","text":"Essential storage, analytics, advertising and partner sharing are one package.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Accept everything","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Use necessary storage only","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Optional analytics bundled with access”, this element shows how forced or bundled consent can shape the decision."}]},"neutral":{"label":"Choose data uses","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose data uses"},{"id":"neutral-2-body","type":"text","text":"Necessary storage is explained and optional purposes have separate controls.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Use necessary storage only","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Accept everything","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Use necessary storage only” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Optional analytics bundled with access”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the signup goal. The panel states: “Essential storage, analytics, advertising and partner sharing are one package.” Reviewers need to establish whether “Accept everything” is necessary for the selected task or pressures the user into a separable action. A visitor cannot distinguish necessary operation from optional data uses or express separate choices.","fairDesignPrinciple":"Separate purposes, explain consequences and keep optional permissions off unless the visitor chooses them.","reviewPrompts":["What functional need makes “Accept everything” necessary for the news site entry goal, and can that need be met with less disclosure or commitment?","Capture every peer option, its default state and visual prominence; do those states support “Multiple consequences or purposes are attached to one acceptance control”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Single necessary processing operation clearly explained”, and what product evidence would demonstrate that necessity?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side news site entry interface showing “Accept and enter” and the clearer alternative “Choose data uses”.","provenance":"Original hypothetical news site entry example created for this library; no real business, product or interface is depicted."},{"id":"forced-or-bundled-consent-scenario-2","title":"Purchase terms combined with promotions","context":"Ticket checkout","journeyStage":"Checkout","summary":"A fictional ticket seller requires one checkbox that accepts the purchase terms, promotional messages and sharing with event partners.","problematic":{"label":"Agree to continue","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Agree to continue"},{"id":"problematic-2-body","type":"text","text":"Purchase, newsletters and partner offers use one required checkbox.","tone":"warning"},{"id":"problematic-3-checkbox","type":"checkbox","label":"Accept all terms and offers","checked":true},{"id":"problematic-4-button","type":"button","text":"Continue with selected choices","emphasis":"primary"}],"annotations":[{"targetId":"problematic-4-button","text":"In “Purchase terms combined with promotions”, this element shows how forced or bundled consent can shape the decision."}]},"neutral":{"label":"Confirm purchase terms","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Confirm purchase terms"},{"id":"neutral-2-body","type":"text","text":"The contract control is required; marketing and partner choices are separate and optional.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Complete purchase","emphasis":"secondary"},{"id":"neutral-4-badge","type":"badge","text":"Only task-relevant details requested","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Complete purchase” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Purchase terms combined with promotions”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the checkout goal. The panel states: “Purchase, newsletters and partner offers use one required checkbox.” Reviewers need to establish whether “Accept all terms and offers” is necessary for the selected task or pressures the user into a separable action. Refusing unrelated marketing appears to prevent completion of the requested transaction.","fairDesignPrinciple":"Keep contract acceptance distinct from optional marketing and partner permissions with unticked controls.","reviewPrompts":["What functional need makes “Accept all terms and offers” necessary for the ticket checkout goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “At least one consequence appears separable from the core function”?","Could the stated purpose make this dependency genuinely necessary under the boundary “bundle with granular equivalent controls and no penalty for refusal”, and what product evidence would demonstrate that necessity?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side ticket checkout interface showing “Agree to continue” and the clearer alternative “Confirm purchase terms”.","provenance":"Original hypothetical ticket checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Separate distinct purposes, make optional uses genuinely optional, and provide an equally accessible refusal path.","whyProblematic":"Access is conditioned on accepting optional or separable data uses, communications or permissions as one bundled choice. Several distinct processing purposes are collapsed into one take-it-or-leave-it permission, so a person cannot accept necessary operation without optional uses. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["Multiple consequences or purposes are attached to one acceptance control.","At least one consequence appears separable from the core function.","Refusal blocks or materially burdens access.","Exclude or qualify the label where single necessary processing operation clearly explained.","Exclude or qualify the label where bundle with granular equivalent controls and no penalty for refusal."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["What functional need makes “Accept everything” necessary for the news site entry goal, and can that need be met with less disclosure or commitment?","Capture every peer option, its default state and visual prominence; do those states support “Multiple consequences or purposes are attached to one acceptance control”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Single necessary processing operation clearly explained”, and what product evidence would demonstrate that necessity?","What functional need makes “Accept all terms and offers” necessary for the ticket checkout goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “At least one consequence appears separable from the core function”?","Could the stated purpose make this dependency genuinely necessary under the boundary “bundle with granular equivalent controls and no penalty for refusal”, and what product evidence would demonstrate that necessity?","Which complete journey evidence supports or contradicts the forced or bundled consent classification?"],"evidence":["Versioned captures of the Signup and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed forced or bundled consent mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["forced-registration","forced-action-and-data-disclosure","contact-harvesting-and-coerced-referrals"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022","eu-ucpd-2005-29"],"altText":"Side-by-side news site entry interface showing “Accept and enter” and the clearer alternative “Choose data uses”.","provenance":"Original hypothetical news site entry example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Forced registration: definition, examples and fairer design","slug":"forced-registration","preferredName":"Forced registration","directAnswer":"The label “Forced registration” describes this recurring design mechanism: the user must create an account, or is led to believe one is required, to complete a goal that could plausibly be provided without it. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"The user must create an account, or is led to believe one is required, to complete a goal that could plausibly be provided without it. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["forced enrolment","forced enrollment"],"category":"Forced action","family":"Forced action","journeyStages":["Checkout","Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Online retail checkout","scenario":"A fictional retailer removes guest checkout after an item is added and requires a full account, date of birth and saved password before payment can continue.","harm":"A shopper may surrender unnecessary information or abandon a purchase after investing time in the basket."},{"type":"Illustrative example","context":"Home-services quote","scenario":"A fictional repair service asks visitors to create a profile and verify a phone number before it reveals even an indicative service price.","harm":"People cannot compare the offer without creating an identity record and may receive communications they did not seek."}],"howItWorks":"The user must create an account, or is led to believe one is required, to complete a goal that could plausibly be provided without it. The gate converts an otherwise available task into account creation, so the user must create a persistent identity record before reaching the requested outcome.","warningSigns":["A desired goal is gated by account creation.","No equivalent guest or bypass route is available or discoverable.","Registration is not evidently necessary for the specific function."],"harms":["A shopper may surrender unnecessary information or abandon a purchase after investing time in the basket.","People cannot compare the offer without creating an identity record and may receive communications they did not seek."],"legitimateUses":["A similar design should not be classified this way where account creation that is inherently necessary for persistent account functionality.","A similar design should not be classified this way where legally or operationally necessary identity verification with clear explanation."],"problematicUi":{"label":"Create an account to continue","copy":"Create an account to continue No guest route is shown after the basket has been prepared. Email address Enter email address Date of birth Enter date of birth Password Enter password Register and save my details","annotations":["In “Account wall at guest checkout”, this element shows how forced registration can shape the decision."]},"improvedUi":{"label":"Choose how to check out","copy":"Choose how to check out Guest checkout and optional account creation are presented together. Delivery email Enter delivery email Continue as guest Purpose and refusal effect The form explains why “Continue as guest” is requested and what happens if it is not used.","annotations":["In “Account wall at guest checkout”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"forced-registration-scenario-1","title":"Account wall at guest checkout","context":"Online retail checkout","journeyStage":"Checkout","summary":"A fictional retailer removes guest checkout after an item is added and requires a full account, date of birth and saved password before payment can continue.","problematic":{"label":"Create an account to continue","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Create an account to continue"},{"id":"problematic-2-body","type":"text","text":"No guest route is shown after the basket has been prepared.","tone":"warning"},{"id":"problematic-3-input","type":"input","label":"Email address","placeholder":"Enter email address"},{"id":"problematic-4-input","type":"input","label":"Date of birth","placeholder":"Enter date of birth"},{"id":"problematic-5-input","type":"input","label":"Password","placeholder":"Enter password"},{"id":"problematic-6-button","type":"button","text":"Register and save my details","emphasis":"primary"}],"annotations":[{"targetId":"problematic-6-button","text":"In “Account wall at guest checkout”, this element shows how forced registration can shape the decision."}]},"neutral":{"label":"Choose how to check out","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose how to check out"},{"id":"neutral-2-body","type":"text","text":"Guest checkout and optional account creation are presented together.","tone":"default"},{"id":"neutral-3-input","type":"input","label":"Delivery email","placeholder":"Enter delivery email"},{"id":"neutral-4-button","type":"button","text":"Continue as guest","emphasis":"secondary"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Continue as guest” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Account wall at guest checkout”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the checkout goal. The panel states: “No guest route is shown after the basket has been prepared.” Reviewers need to establish whether “Register and save my details” is necessary for the selected task or pressures the user into a separable action. A shopper may surrender unnecessary information or abandon a purchase after investing time in the basket.","fairDesignPrinciple":"Keep a clearly labelled guest route beside account creation and request only delivery and payment data needed for the order.","reviewPrompts":["What functional need makes “Register and save my details” necessary for the online retail checkout goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “A desired goal is gated by account creation”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Account creation that is inherently necessary for persistent account functionality”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side online retail checkout interface showing “Create an account to continue” and the clearer alternative “Choose how to check out”.","provenance":"Original hypothetical online retail checkout example created for this library; no real business, product or interface is depicted."},{"id":"forced-registration-scenario-2","title":"Profile required before price estimate","context":"Home-services quote","journeyStage":"Pricing","summary":"A fictional repair service asks visitors to create a profile and verify a phone number before it reveals even an indicative service price.","problematic":{"label":"Unlock your estimate","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Unlock your estimate"},{"id":"problematic-2-body","type":"text","text":"Name, phone, birth date and password are required before any price appears.","tone":"warning"},{"id":"problematic-3-input","type":"input","label":"Full name","placeholder":"Enter full name"},{"id":"problematic-4-input","type":"input","label":"Mobile number","placeholder":"Enter mobile number"},{"id":"problematic-5-input","type":"input","label":"Date of birth","placeholder":"Enter date of birth"},{"id":"problematic-6-input","type":"input","label":"Password","placeholder":"Enter password"},{"id":"problematic-7-button","type":"button","text":"Create profile","emphasis":"primary"}],"annotations":[{"targetId":"problematic-7-button","text":"In “Profile required before price estimate”, this element shows how forced registration can shape the decision."}]},"neutral":{"label":"Estimated service price","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Estimated service price"},{"id":"neutral-2-body","type":"text","text":"The indicative range and assumptions appear before optional saving or booking.","tone":"default"},{"id":"neutral-3-input","type":"input","label":"Service postcode","placeholder":"Enter service postcode"},{"id":"neutral-4-button","type":"button","text":"View estimate without an account","emphasis":"secondary"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “View estimate without an account” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Profile required before price estimate”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the pricing goal. The panel states: “Name, phone, birth date and password are required before any price appears.” Reviewers need to establish whether “Create profile” is necessary for the selected task or pressures the user into a separable action. People cannot compare the offer without creating an identity record and may receive communications they did not seek.","fairDesignPrinciple":"Show the estimate and its assumptions first, then offer account creation only when it is needed to book or save the quote.","reviewPrompts":["What functional need makes “Create profile” necessary for the home-services quote goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “No equivalent guest or bypass route is available or discoverable”?","Could the stated purpose make this dependency genuinely necessary under the boundary “legally or operationally necessary identity verification with clear explanation”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side home-services quote interface showing “Unlock your estimate” and the clearer alternative “Estimated service price”.","provenance":"Original hypothetical home-services quote example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Provide a clearly visible guest or no-account path unless registration is genuinely necessary, and explain necessity before collecting data.","whyProblematic":"The user must create an account, or is led to believe one is required, to complete a goal that could plausibly be provided without it. The gate converts an otherwise available task into account creation, so the user must create a persistent identity record before reaching the requested outcome. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A desired goal is gated by account creation.","No equivalent guest or bypass route is available or discoverable.","Registration is not evidently necessary for the specific function.","Exclude or qualify the label where account creation that is inherently necessary for persistent account functionality.","Exclude or qualify the label where legally or operationally necessary identity verification with clear explanation."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["What functional need makes “Register and save my details” necessary for the online retail checkout goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “A desired goal is gated by account creation”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Account creation that is inherently necessary for persistent account functionality”, and what product evidence would demonstrate that necessity?","What functional need makes “Create profile” necessary for the home-services quote goal, and can that need be met with less disclosure or commitment?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “No equivalent guest or bypass route is available or discoverable”?","Could the stated purpose make this dependency genuinely necessary under the boundary “legally or operationally necessary identity verification with clear explanation”, and what product evidence would demonstrate that necessity?","Which complete journey evidence supports or contradicts the forced registration classification?"],"evidence":["Versioned captures of the Checkout and Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed forced registration mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["forced-action-and-data-disclosure","contact-harvesting-and-coerced-referrals","gamified-or-paid-access-coercion"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side online retail checkout interface showing “Create an account to continue” and the clearer alternative “Choose how to check out”.","provenance":"Original hypothetical online retail checkout example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Gamified or paid access coercion: definition, examples and fairer design","slug":"gamified-or-paid-access-coercion","preferredName":"Gamified or paid access coercion","directAnswer":"The label “Gamified or paid access coercion” describes this recurring design mechanism: desired functionality is practically conditioned on repetitive engagement or an additional payment not sufficiently clear at acquisition. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Desired functionality is practically conditioned on repetitive engagement or an additional payment not sufficiently clear at acquisition. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["gamification","grinding","pay-to-play"],"category":"Forced action","family":"Forced action","journeyStages":["Account Management"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Mobile game","scenario":"A fictional game sells a chapter pass but requires hours of repetitive daily tasks or another payment before the purchased final level becomes playable.","harm":"Players may pay twice or spend unplanned time to reach content they reasonably understood was included."},{"type":"Illustrative example","context":"Learning platform","scenario":"A fictional study service makes certificate export depend on completing seven daily streak tasks that were not disclosed when the course was bought.","harm":"Learners may be forced into additional engagement or lose a completion record they already earned."}],"howItWorks":"Desired functionality is practically conditioned on repetitive engagement or an additional payment not sufficiently clear at acquisition. A purchased or expected function is placed behind extra play, streak, points or payment mechanics that were not part of the user’s original access decision.","warningSigns":["A concrete function is withheld or made impractical.","Repeated labour or additional payment is the effective unlock route.","The condition was unexpected, disproportionate or insufficiently disclosed."],"harms":["Players may pay twice or spend unplanned time to reach content they reasonably understood was included.","Learners may be forced into additional engagement or lose a completion record they already earned."],"legitimateUses":["A similar design should not be classified this way where ordinary progression intrinsic to a game and transparently described.","A similar design should not be classified this way where clearly disclosed optional cosmetic purchases."],"problematicUi":{"label":"Chapter pass · €12","copy":"Chapter pass · €12 The final level also needs 4,000 energy points or a €6 boost. Displayed amount €6 Unlock boost €6 Unlock boost €6 Play purchased level","annotations":["In “Energy gate before a purchased level”, this element shows how gamified or paid access coercion can shape the decision."]},"improvedUi":{"label":"Complete chapter access · €12","copy":"Complete chapter access · €12 All purchased levels are available; optional challenges are labelled separately. Play purchased level Unlock boost €6 Price, period and commitment The price and material terms associated with “Play purchased level” remain beside this choice.","annotations":["In “Energy gate before a purchased level”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"gamified-or-paid-access-coercion-scenario-1","title":"Energy gate before a purchased level","context":"Mobile game","journeyStage":"Account Management","summary":"A fictional game sells a chapter pass but requires hours of repetitive daily tasks or another payment before the purchased final level becomes playable.","problematic":{"label":"Chapter pass · €12","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Chapter pass · €12"},{"id":"problematic-2-body","type":"text","text":"The final level also needs 4,000 energy points or a €6 boost.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€6","detail":"Unlock boost €6"},{"id":"problematic-4-button","type":"button","text":"Unlock boost €6","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Play purchased level","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Energy gate before a purchased level”, this element shows how gamified or paid access coercion can shape the decision."}]},"neutral":{"label":"Complete chapter access · €12","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Complete chapter access · €12"},{"id":"neutral-2-body","type":"text","text":"All purchased levels are available; optional challenges are labelled separately.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Play purchased level","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Unlock boost €6","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Play purchased level” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Energy gate before a purchased level”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the account management goal. The panel states: “The final level also needs 4,000 energy points or a €6 boost.” Reviewers need to establish whether “Unlock boost €6” is necessary for the selected task or pressures the user into a separable action. Players may pay twice or spend unplanned time to reach content they reasonably understood was included.","fairDesignPrinciple":"State the access conditions before purchase and provide a direct route to purchased content without undisclosed grinding or another charge.","reviewPrompts":["What functional need makes “Unlock boost €6” necessary for the mobile game goal, and can that need be met with less disclosure or commitment?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “A concrete function is withheld or made impractical”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Ordinary progression intrinsic to a game and transparently described”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side mobile game interface showing “Chapter pass · €12” and the clearer alternative “Complete chapter access · €12”.","provenance":"Original hypothetical mobile game example created for this library; no real business, product or interface is depicted."},{"id":"gamified-or-paid-access-coercion-scenario-2","title":"Reward loop required for document export","context":"Learning platform","journeyStage":"Account Management","summary":"A fictional study service makes certificate export depend on completing seven daily streak tasks that were not disclosed when the course was bought.","problematic":{"label":"Keep the streak to export","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"Keep the streak to export"},{"id":"problematic-2-body","type":"text","text":"Seven more daily tasks are required before the certificate link activates.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Return tomorrow","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Return tomorrow","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Reward loop required for document export”, this element shows how gamified or paid access coercion can shape the decision."}]},"neutral":{"label":"Your certificate is ready","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Your certificate is ready"},{"id":"neutral-2-body","type":"text","text":"Course completion unlocks export immediately; practice streaks remain optional.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Download certificate","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Download certificate","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Download certificate” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Reward loop required for document export”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The additional dependency controls access to the account management goal. The panel states: “Seven more daily tasks are required before the certificate link activates.” Reviewers need to establish whether “Return tomorrow” is necessary for the selected task or pressures the user into a separable action. Learners may be forced into additional engagement or lose a completion record they already earned.","fairDesignPrinciple":"Provide the earned certificate directly and present streak activities as optional learning support.","reviewPrompts":["What functional need makes “Return tomorrow” necessary for the learning platform goal, and can that need be met with less disclosure or commitment?","Test the control across refresh, device and account states; is “Repeated labour or additional payment is the effective unlock route” still observable after persistence is considered?","Could the stated purpose make this dependency genuinely necessary under the boundary “clearly disclosed optional cosmetic purchases”, and what product evidence would demonstrate that necessity?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side learning platform interface showing “Keep the streak to export” and the clearer alternative “Your certificate is ready”.","provenance":"Original hypothetical learning platform example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Disclose access conditions before acquisition and avoid making disproportionate repetition or surprise payment the practical path to expected functionality.","whyProblematic":"Desired functionality is practically conditioned on repetitive engagement or an additional payment not sufficiently clear at acquisition. A purchased or expected function is placed behind extra play, streak, points or payment mechanics that were not part of the user’s original access decision. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A concrete function is withheld or made impractical.","Repeated labour or additional payment is the effective unlock route.","The condition was unexpected, disproportionate or insufficiently disclosed.","Exclude or qualify the label where ordinary progression intrinsic to a game and transparently described.","Exclude or qualify the label where clearly disclosed optional cosmetic purchases."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["What functional need makes “Unlock boost €6” necessary for the mobile game goal, and can that need be met with less disclosure or commitment?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “A concrete function is withheld or made impractical”?","Could the stated purpose make this dependency genuinely necessary under the boundary “Ordinary progression intrinsic to a game and transparently described”, and what product evidence would demonstrate that necessity?","What functional need makes “Return tomorrow” necessary for the learning platform goal, and can that need be met with less disclosure or commitment?","Test the control across refresh, device and account states; is “Repeated labour or additional payment is the effective unlock route” still observable after persistence is considered?","Could the stated purpose make this dependency genuinely necessary under the boundary “clearly disclosed optional cosmetic purchases”, and what product evidence would demonstrate that necessity?","Which complete journey evidence supports or contradicts the gamified or paid access coercion classification?"],"evidence":["Versioned captures of the Account Management states before, during and after the relevant decision","Configuration, content and event records supporting the observed gamified or paid access coercion mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["forced-registration","forced-action-and-data-disclosure","contact-harvesting-and-coerced-referrals"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side mobile game interface showing “Chapter pass · €12” and the clearer alternative “Complete chapter access · €12”.","provenance":"Original hypothetical mobile game example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Hidden information and concealed consequences","slug":"hidden-information","preferredName":"Hidden information","directAnswer":"Hidden information places material facts where users are unlikely to notice them before deciding, for example, behind vague links or late in checkout. Existing EU consumer rules already require important information in many transactions and prohibit misleading omissions. Whether a particular layout breaches a rule depends on what was omitted, the medium, timing and likely effect on the consumer's decision.","definition":"Information relevant to the decision is absent or presented so ineffectively that it is unlikely to inform the user at the decision point. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["sneaking","concealed material information","late disclosure","hidden information","hidden in plain sight","low salience material information"],"category":"Information architecture","family":"Interface interference","journeyStages":["Pricing","Checkout","Subscription","Cancellation"],"jurisdiction":"European Union","status":"Current law","legalBasis":[{"provision":"UCPD Articles 6 to 7","sourceIds":["eu-ucpd-2005-29"],"classification":"Express rule","explanation":"Misleading actions and omissions can include unclear, unintelligible, ambiguous or untimely presentation of material information."},{"provision":"CRD Articles 6 and 8","sourceIds":["eu-crd-2011-83"],"classification":"Express rule","explanation":"Distance-contract information duties require specified information in a clear and comprehensible manner before the consumer is bound."}],"examples":[{"type":"Illustrative example","context":"Rail fare comparison","scenario":"A fictional rail booking page labels a fare “Flexible Saver” but places the fact that it is non-refundable inside a collapsed section reached only after passenger details.","harm":"A traveller may select an unsuitable fare because a material restriction is absent from the comparison decision."},{"type":"Illustrative example","context":"Home-services plan","scenario":"A fictional repair plan headlines “Every appliance covered” but splits an exclusion for boilers across three collapsed help tabs reached only after booking.","harm":"A customer may buy unsuitable cover because a material limitation cannot inform the decision."},{"type":"Illustrative example","context":"Travel checkout","scenario":"A booking flow shows a headline fare, while a non-refundable condition appears only inside an accordion labelled ‘More’ after the traveller has entered passenger details.","harm":"The traveller may invest time and proceed without appreciating a material restriction on changing the booking."},{"type":"Illustrative example","context":"Software subscription","scenario":"A monthly price is prominent, but the minimum twelve-month commitment appears only in muted text beneath the final payment control.","harm":"The user may understand the offer as cancellable monthly and make a different transactional decision."}],"howItWorks":"Information relevant to the decision is absent or presented so ineffectively that it is unlikely to inform the user at the decision point. A consequence that could change the decision is moved out of the comparison or commitment view, reduced in salience or split across remote disclosures.","warningSigns":["The information is plausibly material to a concrete decision.","It is missing, hidden, low-salience, unclear, inaccessible, untimely or overwhelming.","The deficiency is tied to a likely influence mechanism or detriment."],"harms":["A traveller may select an unsuitable fare because a material restriction is absent from the comparison decision.","A customer may buy unsuitable cover because a material limitation cannot inform the decision."],"legitimateUses":["A similar design should not be classified this way where purely optional detail with no plausible decision relevance.","A similar design should not be classified this way where late mandatory charge or subscription term already classified under the more specific sneaking pattern for the same evidence."],"problematicUi":{"label":"Flexible Saver · €64","copy":"Flexible Saver · €64 The non-refundable condition is absent from the fare card and comparison table. Displayed amount €64 Choose €64 fare Choose €64 fare Review fare conditions","annotations":["In “Non-refundable condition appears after fare selection”, this element shows how hidden or low-salience material information can shape the decision."]},"improvedUi":{"label":"Saver · €64 · non-refundable","copy":"Saver · €64 · non-refundable Price and the material restriction appear together before selection. Review fare conditions Choose €64 fare Price, period and commitment The price and material terms associated with “Review fare conditions” remain beside this choice.","annotations":["In “Non-refundable condition appears after fare selection”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"hidden-or-low-salience-material-information-scenario-1","title":"Non-refundable condition appears after fare selection","context":"Rail fare comparison","journeyStage":"Pricing","summary":"A fictional rail booking page labels a fare “Flexible Saver” but places the fact that it is non-refundable inside a collapsed section reached only after passenger details.","problematic":{"label":"Flexible Saver · €64","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Flexible Saver · €64"},{"id":"problematic-2-body","type":"text","text":"The non-refundable condition is absent from the fare card and comparison table.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€64","detail":"Choose €64 fare"},{"id":"problematic-4-button","type":"button","text":"Choose €64 fare","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Review fare conditions","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Non-refundable condition appears after fare selection”, this element shows how hidden or low-salience material information can shape the decision."}]},"neutral":{"label":"Saver · €64 · non-refundable","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Saver · €64 · non-refundable"},{"id":"neutral-2-body","type":"text","text":"Price and the material restriction appear together before selection.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Review fare conditions","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Choose €64 fare","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Review fare conditions” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Non-refundable condition appears after fare selection”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “The non-refundable condition is absent from the fare card and comparison table.” Its influence should be tested by comparing the consequence and usability of “Choose €64 fare” with “Review fare conditions”. A traveller may select an unsuitable fare because a material restriction is absent from the comparison decision.","fairDesignPrinciple":"Place refundability, change conditions and any material restriction beside each fare before selection.","reviewPrompts":["Do “Choose €64 fare” and “Review fare conditions” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The information is plausibly material to a concrete decision”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Purely optional detail with no plausible decision relevance”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side rail fare comparison interface showing “Flexible Saver · €64” and the clearer alternative “Saver · €64 · non-refundable”.","provenance":"Original hypothetical rail fare comparison example created for this library; no real business, product or interface is depicted."},{"id":"hidden-or-low-salience-material-information-scenario-2","title":"Major exclusion dispersed across tabs","context":"Home-services plan","journeyStage":"Pricing","summary":"A fictional repair plan headlines “Every appliance covered” but splits an exclusion for boilers across three collapsed help tabs reached only after booking.","problematic":{"label":"Every appliance covered","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"Every appliance covered"},{"id":"problematic-2-body","type":"text","text":"The boiler exclusion appears only across several remote help tabs.","tone":"warning"},{"id":"problematic-3-disclosure","type":"disclosure","summary":"See full terms","content":"See full terms","open":false},{"id":"problematic-4-link","type":"link","text":"Review coverage","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Major exclusion dispersed across tabs”, this element shows how hidden or low-salience material information can shape the decision."}]},"neutral":{"label":"Core coverage and exclusions","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Core coverage and exclusions"},{"id":"neutral-2-body","type":"text","text":"Boilers are not covered; the limitation appears beside the plan summary.","tone":"default"},{"id":"neutral-3-disclosure","type":"disclosure","summary":"Review coverage","content":"Review coverage","open":true},{"id":"neutral-4-link","type":"link","text":"See full terms","emphasis":"default"},{"id":"neutral-5-badge","type":"badge","text":"Material term visible before choice: Review coverage","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Major exclusion dispersed across tabs”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “The boiler exclusion appears only across several remote help tabs.” Its influence should be tested by comparing the consequence and usability of “See full terms” with “Review coverage”. A customer may buy unsuitable cover because a material limitation cannot inform the decision.","fairDesignPrinciple":"State the major exclusion in the offer summary and use supporting detail to explain, not reverse, the headline.","reviewPrompts":["Do “See full terms” and “Review coverage” receive comparable prominence and explain their consequences before activation?","Capture the collapsed and expanded states plus the associated decision control; is “It is missing, hidden, low-salience, unclear, inaccessible, untimely or overwhelming” visible at the right time?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “late mandatory charge or subscription term already classified under the more specific sneaking pattern for the same evidence”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side home-services plan interface showing “Every appliance covered” and the clearer alternative “Core coverage and exclusions”.","provenance":"Original hypothetical home-services plan example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Put material price, duration, renewal, limitation and cancellation information beside the relevant decision, using specific headings and readable contrast. Progressive disclosure can organise detail, but the first layer should expose facts likely to change the decision.","whyProblematic":"Not every collapsed section is problematic. The central questions are whether the fact is material, whether the consumer receives it before being bound, how clearly it is expressed and whether the overall presentation is likely to cause a transactional decision they otherwise would not take.","contextFactors":["The information is plausibly material to a concrete decision.","It is missing, hidden, low-salience, unclear, inaccessible, untimely or overwhelming.","The deficiency is tied to a likely influence mechanism or detriment.","Exclude or qualify the label where purely optional detail with no plausible decision relevance.","Exclude or qualify the label where late mandatory charge or subscription term already classified under the more specific sneaking pattern for the same evidence."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Choose €64 fare” and “Review fare conditions” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The information is plausibly material to a concrete decision”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Purely optional detail with no plausible decision relevance”?","Do “See full terms” and “Review coverage” receive comparable prominence and explain their consequences before activation?","Capture the collapsed and expanded states plus the associated decision control; is “It is missing, hidden, low-salience, unclear, inaccessible, untimely or overwhelming” visible at the right time?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “late mandatory charge or subscription term already classified under the more specific sneaking pattern for the same evidence”?","Which complete journey evidence supports or contradicts the hidden or low-salience material information classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed hidden or low-salience material information mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["drip-pricing-and-hidden-charges","cancellation-friction","false-hierarchy","preselection-and-defaults","misleading-reference-pricing"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29","eu-crd-2011-83","eu-dfa-call-evidence-14622"],"altText":"Side-by-side rail fare comparison interface showing “Flexible Saver · €64” and the clearer alternative “Saver · €64 · non-refundable”.","provenance":"Original hypothetical rail fare comparison example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Hidden subscription or forced continuity: definition, examples and fairer design","slug":"hidden-subscription-or-forced-continuity","preferredName":"Hidden subscription or forced continuity","directAnswer":"The label “Hidden subscription or forced continuity” describes this recurring design mechanism: a transaction creates or continues recurring liability without effective, timely disclosure of the subscription, renewal and exit consequences. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A transaction creates or continues recurring liability without effective, timely disclosure of the subscription, renewal and exit consequences. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["forced continuity","hidden subscription","automatic renewal surprise"],"category":"Sneaking","family":"Sneaking","journeyStages":["Subscription","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Fitness app signup","scenario":"A fictional fitness app promotes seven free days but places the €240 annual conversion, date and cancellation route only inside a remote terms link.","harm":"A user may enter a large recurring liability without understanding the conversion."},{"type":"Illustrative example","context":"Personal-care checkout","scenario":"A fictional shop sells a €5 sample kit but treats the order as agreement to a €45 monthly delivery without naming a subscription beside the purchase button.","harm":"A shopper may incur repeated charges after believing the transaction was one-off."}],"howItWorks":"A transaction creates or continues recurring liability without effective, timely disclosure of the subscription, renewal and exit consequences. A free, low-cost or one-off presentation conceals the later recurring payment, conversion date or renewal state beside the action that creates it.","warningSigns":["The offer creates a subscription, renewal or recurring liability.","One or more material terms are missing, low-salience, ambiguous or late before assent.","The user can incur continued payment or commitment."],"harms":["A user may enter a large recurring liability without understanding the conversion.","A shopper may incur repeated charges after believing the transaction was one-off."],"legitimateUses":["A similar design should not be classified this way where recurring terms clearly and prominently disclosed before assent.","A similar design should not be classified this way where a clearly presented one-off purchase with no continuing payment or renewal consequence.","A similar design should not be classified this way where cancellation friction without an offer-disclosure defect.","A similar design should not be classified this way where a continuing service that creates no automatic payment, renewal or post-trial liability."],"problematicUi":{"label":"Start 7 days free","copy":"Start 7 days free Annual conversion details are hidden in a remote document. Displayed amount €0 €0 today Review recurring terms","annotations":["In “Free trial converts to an annual charge”, this element shows how hidden subscription or forced continuity can shape the decision."]},"improvedUi":{"label":"Start 7-day trial","copy":"Start 7-day trial €240 per year from 18 September until cancelled online. Review recurring terms €0 today Price, period and commitment The price and material terms associated with “Review recurring terms” remain beside this choice.","annotations":["In “Free trial converts to an annual charge”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"hidden-subscription-or-forced-continuity-scenario-1","title":"Free trial converts to an annual charge","context":"Fitness app signup","journeyStage":"Subscription","summary":"A fictional fitness app promotes seven free days but places the €240 annual conversion, date and cancellation route only inside a remote terms link.","problematic":{"label":"Start 7 days free","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Start 7 days free"},{"id":"problematic-2-body","type":"text","text":"Annual conversion details are hidden in a remote document.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€0","detail":"€0 today"},{"id":"problematic-4-link","type":"link","text":"Review recurring terms","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Free trial converts to an annual charge”, this element shows how hidden subscription or forced continuity can shape the decision."}]},"neutral":{"label":"Start 7-day trial","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Start 7-day trial"},{"id":"neutral-2-body","type":"text","text":"€240 per year from 18 September until cancelled online.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Review recurring terms","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"€0 today","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Review recurring terms” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Free trial converts to an annual charge”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “Annual conversion details are hidden in a remote document.” Review the timing and affirmative selection needed before “€0 today” changes price, product or recurring liability. A user may enter a large recurring liability without understanding the conversion.","fairDesignPrinciple":"State the later price, billing period, conversion date and exit method beside the trial action and in confirmation.","reviewPrompts":["Which affirmative action authorises “€0 today”, and where is the resulting price, product or recurring state shown before commitment?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The offer creates a subscription, renewal or recurring liability”?","Which specific affirmative event creates the final commercial state, and could “Recurring terms clearly and prominently disclosed before assent” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side fitness app signup interface showing “Start 7 days free” and the clearer alternative “Start 7-day trial”.","provenance":"Original hypothetical fitness app signup example created for this library; no real business, product or interface is depicted."},{"id":"hidden-subscription-or-forced-continuity-scenario-2","title":"One-off sample silently creates monthly deliveries","context":"Personal-care checkout","journeyStage":"Checkout","summary":"A fictional shop sells a €5 sample kit but treats the order as agreement to a €45 monthly delivery without naming a subscription beside the purchase button.","problematic":{"label":"Try the sample kit · €5","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Try the sample kit · €5"},{"id":"problematic-2-body","type":"text","text":"The monthly continuation appears only after payment.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Buy sample","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Buy one-off sample €5","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “One-off sample silently creates monthly deliveries”, this element shows how hidden subscription or forced continuity can shape the decision."}]},"neutral":{"label":"Choose one-off or subscription","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose one-off or subscription"},{"id":"neutral-2-body","type":"text","text":"Each option states price, cadence and whether it renews.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Buy one-off sample €5","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Buy sample","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Buy one-off sample €5” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “One-off sample silently creates monthly deliveries”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “The monthly continuation appears only after payment.” Review the timing and affirmative selection needed before “Buy sample” changes price, product or recurring liability. A shopper may incur repeated charges after believing the transaction was one-off.","fairDesignPrinciple":"Offer one-off and subscription choices separately with clear recurring price, cadence and ending information.","reviewPrompts":["Which affirmative action authorises “Buy sample”, and where is the resulting price, product or recurring state shown before commitment?","Capture every peer option, its default state and visual prominence; do those states support “One or more material terms are missing, low-salience, ambiguous or late before assent”?","Which specific affirmative event creates the final commercial state, and could “one-off purchase” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side personal-care checkout interface showing “Try the sample kit · €5” and the clearer alternative “Choose one-off or subscription”.","provenance":"Original hypothetical personal-care checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Present every material subscription, renewal and exit term clearly before assent and satisfy current notice rules.","whyProblematic":"A transaction creates or continues recurring liability without effective, timely disclosure of the subscription, renewal and exit consequences. A free, low-cost or one-off presentation conceals the later recurring payment, conversion date or renewal state beside the action that creates it. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The offer creates a subscription, renewal or recurring liability.","One or more material terms are missing, low-salience, ambiguous or late before assent.","The user can incur continued payment or commitment.","Exclude or qualify the label where recurring terms clearly and prominently disclosed before assent.","Exclude or qualify the label where a clearly presented one-off purchase with no continuing payment or renewal consequence.","Exclude or qualify the label where cancellation friction without an offer-disclosure defect.","Exclude or qualify the label where a continuing service that creates no automatic payment, renewal or post-trial liability."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which affirmative action authorises “€0 today”, and where is the resulting price, product or recurring state shown before commitment?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The offer creates a subscription, renewal or recurring liability”?","Which specific affirmative event creates the final commercial state, and could “Recurring terms clearly and prominently disclosed before assent” explain the observed outcome instead?","Which affirmative action authorises “Buy sample”, and where is the resulting price, product or recurring state shown before commitment?","Capture every peer option, its default state and visual prominence; do those states support “One or more material terms are missing, low-salience, ambiguous or late before assent”?","Which specific affirmative event creates the final commercial state, and could “one-off purchase” explain the observed outcome instead?","Which complete journey evidence supports or contradicts the hidden subscription or forced continuity classification?"],"evidence":["Versioned captures of the Subscription and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed hidden subscription or forced continuity mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen","Control defaults, validation rules and consent or selection state changes"],"related":["sneak-into-basket","drip-pricing-and-hidden-charges","bait-and-switch"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side fitness app signup interface showing “Start 7 days free” and the clearer alternative “Start 7-day trial”.","provenance":"Original hypothetical fitness app signup example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"High-demand claim: definition, examples and fairer design","slug":"high-demand-claim","preferredName":"High-demand claim","directAnswer":"The label “High-demand claim” describes this recurring design mechanism: a claim of unusually high current demand is used to accelerate a decision without a clear or supportable basis. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A claim of unusually high current demand is used to accelerate a decision without a clear or supportable basis. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["selling fast","many people viewing"],"category":"Urgency","family":"Urgency","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Travel search result","scenario":"A fictional travel site displays “42 people are viewing this” from a fixed script that runs for every result and visitor.","harm":"The unsupported demand cue can create pressure to book before comparing alternatives."},{"type":"Illustrative example","context":"Event ticket page","scenario":"A fictional seller says “Selling fast today” using sales from the launch week three months earlier.","harm":"Historical popularity is framed as immediate demand and may rush a decision."}],"howItWorks":"A claim of unusually high current demand is used to accelerate a decision without a clear or supportable basis. A demand message suggests competition from other buyers without a current, relevant measure connecting that activity to the user’s available offer.","warningSigns":["The claim refers to demand, viewers, purchases or bookings rather than remaining stock.","It is temporally framed and connected to a transaction.","Truth and representativeness require provenance or controlled replay."],"harms":["The unsupported demand cue can create pressure to book before comparing alternatives.","Historical popularity is framed as immediate demand and may rush a decision."],"legitimateUses":["A similar design should not be classified this way where remaining-stock claim.","A similar design should not be classified this way where static aggregate popularity claim.","A similar design should not be classified this way where auditable live demand metric with clear definition."],"problematicUi":{"label":"42 people viewing now","copy":"42 people viewing now The number is fixed and unrelated to current viewers. Book before demand rises Claim basis No supporting population, period, inventory or offer event is presented with this message.","annotations":["In “Fabricated live-viewer count”, this element shows how high-demand claim can shape the decision."]},"improvedUi":{"label":"Current availability","copy":"Current availability The page uses verifiable inventory rather than invented audience pressure. Rooms available for these dates Claim basis The relevant population, period, inventory or offer state is presented with the message. View the source and period for “Rooms available for these dates”","annotations":["In “Fabricated live-viewer count”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"high-demand-claim-scenario-1","title":"Fabricated live-viewer count","context":"Travel search result","journeyStage":"Pricing","summary":"A fictional travel site displays “42 people are viewing this” from a fixed script that runs for every result and visitor.","problematic":{"label":"42 people viewing now","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"42 people viewing now"},{"id":"problematic-2-body","type":"text","text":"The number is fixed and unrelated to current viewers.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Book before demand rises","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Fabricated live-viewer count”, this element shows how high-demand claim can shape the decision."}]},"neutral":{"label":"Current availability","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Current availability"},{"id":"neutral-2-body","type":"text","text":"The page uses verifiable inventory rather than invented audience pressure.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"Rooms available for these dates","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “Rooms available for these dates”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Fabricated live-viewer count”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the pricing decision. The cue “Book before demand rises” should correspond to a defined operating state and a real consequence. The example instead states: “The number is fixed and unrelated to current viewers.” The unsupported demand cue can create pressure to book before comparing alternatives.","fairDesignPrinciple":"Use a clearly defined live metric only when supported, including the relevant listing and measurement window.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “Book before demand rises”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The claim refers to demand, viewers, purchases or bookings rather than remaining stock”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “Remaining-stock claim”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side travel search result interface showing “42 people viewing now” and the clearer alternative “Current availability”.","provenance":"Original hypothetical travel search result example created for this library; no real business, product or interface is depicted."},{"id":"high-demand-claim-scenario-2","title":"Old booking spike presented as current demand","context":"Event ticket page","journeyStage":"Pricing","summary":"A fictional seller says “Selling fast today” using sales from the launch week three months earlier.","problematic":{"label":"Selling fast today","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Selling fast today"},{"id":"problematic-2-body","type":"text","text":"The supporting sales period ended three months ago.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Tickets moving quickly","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Old booking spike presented as current demand”, this element shows how high-demand claim can shape the decision."}]},"neutral":{"label":"Ticket availability","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Ticket availability"},{"id":"neutral-2-body","type":"text","text":"Remaining allocation and refresh time are shown without a stale demand claim.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"312 tickets at 14:05","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “312 tickets at 14:05”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Old booking spike presented as current demand”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the pricing decision. The cue “Tickets moving quickly” should correspond to a defined operating state and a real consequence. The example instead states: “The supporting sales period ended three months ago.” Historical popularity is framed as immediate demand and may rush a decision.","fairDesignPrinciple":"State the actual period behind a demand claim or remove the claim when it is no longer current.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “Tickets moving quickly”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It is temporally framed and connected to a transaction”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “static aggregate popularity claim”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side event ticket page interface showing “Selling fast today” and the clearer alternative “Ticket availability”.","provenance":"Original hypothetical event ticket page example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Base demand messages on current auditable data and state the metric and period without exaggeration.","whyProblematic":"A claim of unusually high current demand is used to accelerate a decision without a clear or supportable basis. A demand message suggests competition from other buyers without a current, relevant measure connecting that activity to the user’s available offer. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The claim refers to demand, viewers, purchases or bookings rather than remaining stock.","It is temporally framed and connected to a transaction.","Truth and representativeness require provenance or controlled replay.","Exclude or qualify the label where remaining-stock claim.","Exclude or qualify the label where static aggregate popularity claim.","Exclude or qualify the label where auditable live demand metric with clear definition."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which timestamped inventory, reservation, demand or offer event substantiates “Book before demand rises”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The claim refers to demand, viewers, purchases or bookings rather than remaining stock”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “Remaining-stock claim”?","Which timestamped inventory, reservation, demand or offer event substantiates “Tickets moving quickly”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It is temporally framed and connected to a transaction”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “static aggregate popularity claim”?","Which complete journey evidence supports or contradicts the high-demand claim classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed high-demand claim mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message"],"related":["low-stock-claim","false-urgency-and-scarcity","limited-time-or-reservation-claim"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side travel search result interface showing “42 people viewing now” and the clearer alternative “Current availability”.","provenance":"Original hypothetical travel search result example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Intermediate currency: definition, examples and fairer design","slug":"intermediate-currency","preferredName":"Intermediate currency","directAnswer":"The label “Intermediate currency” describes this recurring design mechanism: a proprietary currency makes the real monetary cost or remaining value unnecessarily hard to understand. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A proprietary currency makes the real monetary cost or remaining value unnecessarily hard to understand. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["virtual currency obfuscation","token pricing"],"category":"Obstruction","family":"Obstruction","journeyStages":["Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"In-game store","scenario":"A fictional game prices an item at 1,350 gems but sells gems only in uneven bundles, with no euro equivalent near the purchase action.","harm":"Players may struggle to understand the real cost and must buy more currency than the item requires."},{"type":"Illustrative example","context":"Creator marketplace","scenario":"A fictional marketplace sells 100 tokens for €10 while a booking costs 84 tokens and no service costs a multiple that uses the remaining balance.","harm":"The customer may spend more than the service price and retain value that is difficult to use or recover."}],"howItWorks":"A proprietary currency makes the real monetary cost or remaining value unnecessarily hard to understand. A proprietary unit separates the displayed item cost from real money and bundle constraints, obscuring both the required spend and residual value.","warningSigns":["The user exchanges real value for a proprietary unit or spends that unit.","The current real-money equivalent is not shown clearly at the purchase decision.","Conversion structure materially impairs cost comprehension or creates unavoidable remainder."],"harms":["Players may struggle to understand the real cost and must buy more currency than the item requires.","The customer may spend more than the service price and retain value that is difficult to use or recover."],"legitimateUses":["A similar design should not be classified this way where transparent one-to-one or prominently converted loyalty points.","A similar design should not be classified this way where currency conversion required by international payment with total displayed.","A similar design should not be classified this way where non-purchasable game score."],"problematicUi":{"label":"Legendary item · 1,350 gems","copy":"Legendary item · 1,350 gems Gem bundles obscure that the smallest sufficient purchase costs €19.99. Buy more gems Review €19.99 bundle","annotations":["In “Gem bundle hides an item’s real-money cost”, this element shows how intermediate currency can shape the decision."]},"improvedUi":{"label":"Legendary item · 1,350 gems (€13.50 value)","copy":"Legendary item · 1,350 gems (€13.50 value) Balance, shortfall and actual bundle cost are visible before commitment. Amount affected €19.99 Review €19.99 bundle Review €19.99 bundle Buy more gems Payable total and selected items The summary shows the line items and total before “Review €19.99 bundle” is activated.","annotations":["In “Gem bundle hides an item’s real-money cost”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"intermediate-currency-scenario-1","title":"Gem bundle hides an item’s real-money cost","context":"In-game store","journeyStage":"Checkout","summary":"A fictional game prices an item at 1,350 gems but sells gems only in uneven bundles, with no euro equivalent near the purchase action.","problematic":{"label":"Legendary item · 1,350 gems","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Legendary item · 1,350 gems"},{"id":"problematic-2-body","type":"text","text":"Gem bundles obscure that the smallest sufficient purchase costs €19.99.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Buy more gems","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Review €19.99 bundle","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Gem bundle hides an item’s real-money cost”, this element shows how intermediate currency can shape the decision."}]},"neutral":{"label":"Legendary item · 1,350 gems (€13.50 value)","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Legendary item · 1,350 gems (€13.50 value)"},{"id":"neutral-2-body","type":"text","text":"Balance, shortfall and actual bundle cost are visible before commitment.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€19.99","detail":"Review €19.99 bundle"},{"id":"neutral-4-button","type":"button","text":"Review €19.99 bundle","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Buy more gems","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Review €19.99 bundle” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Gem bundle hides an item’s real-money cost”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this in-game store example, the obstacle is: “Gem bundles obscure that the smallest sufficient purchase costs €19.99.” Evidence should show whether the alternative remains usable and whether “Review €19.99 bundle” reaches the represented state. Players may struggle to understand the real cost and must buy more currency than the item requires.","fairDesignPrinciple":"Show the real-money equivalent, available balance and exact currency shortfall before purchase.","reviewPrompts":["How many steps, waits and channel changes separate “Buy more gems” from the completed in-game store outcome?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The user exchanges real value for a proprietary unit or spends that unit”?","Measure the same task through the clearest available route: does the effort difference persist once “Transparent one-to-one or prominently converted loyalty points” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side in-game store interface showing “Legendary item · 1,350 gems” and the clearer alternative “Legendary item · 1,350 gems (€13.50 value)”.","provenance":"Original hypothetical in-game store example created for this library; no real business, product or interface is depicted."},{"id":"intermediate-currency-scenario-2","title":"Unused tokens remain after a service booking","context":"Creator marketplace","journeyStage":"Checkout","summary":"A fictional marketplace sells 100 tokens for €10 while a booking costs 84 tokens and no service costs a multiple that uses the remaining balance.","problematic":{"label":"Book for 84 tokens","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Book for 84 tokens"},{"id":"problematic-2-body","type":"text","text":"Only a 100-token bundle can be purchased and the € value is remote.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Buy 100 tokens","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Pay exact amount","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Unused tokens remain after a service booking”, this element shows how intermediate currency can shape the decision."}]},"neutral":{"label":"Book for €8.40","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Book for €8.40"},{"id":"neutral-2-body","type":"text","text":"Direct payment is available; token use shows conversion and remaining balance.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Pay exact amount","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Buy 100 tokens","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Pay exact amount” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Unused tokens remain after a service booking”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this creator marketplace example, the obstacle is: “Only a 100-token bundle can be purchased and the € value is remote.” Evidence should show whether the alternative remains usable and whether “Pay exact amount” reaches the represented state. The customer may spend more than the service price and retain value that is difficult to use or recover.","fairDesignPrinciple":"Allow direct currency payment or explain conversion, residual value and refund options beside the token offer.","reviewPrompts":["How many steps, waits and channel changes separate “Buy 100 tokens” from the completed creator marketplace outcome?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The current real-money equivalent is not shown clearly at the purchase decision”?","Measure the same task through the clearest available route: does the effort difference persist once “currency conversion required by international payment with total displayed” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side creator marketplace interface showing “Book for 84 tokens” and the clearer alternative “Book for €8.40”.","provenance":"Original hypothetical creator marketplace example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Show the current real-money equivalent and total before commitment and avoid conversion structures that obscure or strand value.","whyProblematic":"A proprietary currency makes the real monetary cost or remaining value unnecessarily hard to understand. A proprietary unit separates the displayed item cost from real money and bundle constraints, obscuring both the required spend and residual value. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The user exchanges real value for a proprietary unit or spends that unit.","The current real-money equivalent is not shown clearly at the purchase decision.","Conversion structure materially impairs cost comprehension or creates unavoidable remainder.","Exclude or qualify the label where transparent one-to-one or prominently converted loyalty points.","Exclude or qualify the label where currency conversion required by international payment with total displayed.","Exclude or qualify the label where non-purchasable game score."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Buy more gems” from the completed in-game store outcome?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The user exchanges real value for a proprietary unit or spends that unit”?","Measure the same task through the clearest available route: does the effort difference persist once “Transparent one-to-one or prominently converted loyalty points” is accounted for?","How many steps, waits and channel changes separate “Buy 100 tokens” from the completed creator marketplace outcome?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The current real-money equivalent is not shown clearly at the purchase decision”?","Measure the same task through the clearest available route: does the effort difference persist once “currency conversion required by international payment with total displayed” is accounted for?","Which complete journey evidence supports or contradicts the intermediate currency classification?"],"evidence":["Versioned captures of the Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed intermediate currency mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["obstructed-alternative","cancellation-friction","account-deletion-obstruction"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side in-game store interface showing “Legendary item · 1,350 gems” and the clearer alternative “Legendary item · 1,350 gems (€13.50 value)”.","provenance":"Original hypothetical in-game store example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Limited-time or reservation claim: definition, examples and fairer design","slug":"limited-time-or-reservation-claim","preferredName":"Limited-time or reservation claim","directAnswer":"The label “Limited-time or reservation claim” describes this recurring design mechanism: a textual deadline or temporary-reservation claim pressures action, particularly where the deadline renews or its stated consequence does not occur. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A textual deadline or temporary-reservation claim pressures action, particularly where the deadline renews or its stated consequence does not occur. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["limited-time message","reservation timeout","offer expires soon"],"category":"Urgency","family":"Urgency","journeyStages":["Pricing","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Subscription landing page","scenario":"A fictional service says an annual discount ends Sunday, then automatically replaces the date each Monday while keeping the same price.","harm":"A rolling deadline may cause repeated urgency while the offer is effectively permanent."},{"type":"Illustrative example","context":"Accommodation checkout","scenario":"A fictional booking page says “This room is reserved for you while you complete booking”, although no inventory is held and the message persists indefinitely.","harm":"The user may believe a unique opportunity is protected or will disappear even though the stated reservation has no operational consequence."}],"howItWorks":"A textual deadline or temporary-reservation claim pressures action, particularly where the deadline renews or its stated consequence does not occur. A stated deadline or hold creates time pressure even though the period renews, the item is not reserved or the represented consequence does not occur.","warningSigns":["The claim describes a time-limited offer, price, availability or reservation.","It is connected to a material decision.","Replay, expiry or backend evidence can test its truth and consequence."],"harms":["A rolling deadline may cause repeated urgency while the offer is effectively permanent.","The user may believe a unique opportunity is protected or will disappear even though the stated reservation has no operational consequence."],"legitimateUses":["A similar design should not be classified this way where numeric countdown classified separately.","A similar design should not be classified this way where genuine disclosed deadline with represented consequence.","A similar design should not be classified this way where general seasonal marketing without a concrete temporal claim."],"problematicUi":{"label":"Offer ends Sunday","copy":"Offer ends Sunday The displayed date rolls forward and the price remains unchanged. Claim discount now Claim basis No supporting population, period, inventory or offer event is presented with this message.","annotations":["In “Weekend offer continues every week”, this element shows how limited-time or reservation claim can shape the decision."]},"improvedUi":{"label":"Current annual price","copy":"Current annual price No artificial expiry is shown; any future promotion has a fixed recorded period. Choose annual plan Claim basis The relevant population, period, inventory or offer state is presented with the message. View the source and period for “Choose annual plan”","annotations":["In “Weekend offer continues every week”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"limited-time-or-reservation-claim-scenario-1","title":"Weekend offer continues every week","context":"Subscription landing page","journeyStage":"Pricing","summary":"A fictional service says an annual discount ends Sunday, then automatically replaces the date each Monday while keeping the same price.","problematic":{"label":"Offer ends Sunday","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Offer ends Sunday"},{"id":"problematic-2-body","type":"text","text":"The displayed date rolls forward and the price remains unchanged.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Claim discount now","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Weekend offer continues every week”, this element shows how limited-time or reservation claim can shape the decision."}]},"neutral":{"label":"Current annual price","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Current annual price"},{"id":"neutral-2-body","type":"text","text":"No artificial expiry is shown; any future promotion has a fixed recorded period.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"Choose annual plan","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “Choose annual plan”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Weekend offer continues every week”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the pricing decision. The cue “Claim discount now” should correspond to a defined operating state and a real consequence. The example instead states: “The displayed date rolls forward and the price remains unchanged.” A rolling deadline may cause repeated urgency while the offer is effectively permanent.","fairDesignPrinciple":"Use an end date only where the offer genuinely changes and retain evidence of the stated consequence.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “Claim discount now”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The claim describes a time-limited offer, price, availability or reservation”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “Numeric countdown classified separately”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side subscription landing page interface showing “Offer ends Sunday” and the clearer alternative “Current annual price”.","provenance":"Original hypothetical subscription landing page example created for this library; no real business, product or interface is depicted."},{"id":"limited-time-or-reservation-claim-scenario-2","title":"Reservation claim persists without a hold","context":"Accommodation checkout","journeyStage":"Checkout","summary":"A fictional booking page says “This room is reserved for you while you complete booking”, although no inventory is held and the message persists indefinitely.","problematic":{"label":"Room reserved for you","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Room reserved for you"},{"id":"problematic-2-body","type":"text","text":"The claim persists without an inventory record or release event.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Reserved while you book","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Reservation claim persists without a hold”, this element shows how limited-time or reservation claim can shape the decision."}]},"neutral":{"label":"Room availability checked","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Room availability checked"},{"id":"neutral-2-body","type":"text","text":"No hold is claimed; the user can refresh current availability before payment.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"Check availability again","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “Check availability again”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Reservation claim persists without a hold”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the checkout decision. The cue “Reserved while you book” should correspond to a defined operating state and a real consequence. The example instead states: “The claim persists without an inventory record or release event.” The user may believe a unique opportunity is protected or will disappear even though the stated reservation has no operational consequence.","fairDesignPrinciple":"State a reservation only when inventory is actually held, identify what event releases it and show the post-release state truthfully.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “Reserved while you book”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It is connected to a material decision”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “genuine disclosed deadline with represented consequence”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side accommodation checkout interface showing “Room reserved for you” and the clearer alternative “Room availability checked”.","provenance":"Original hypothetical accommodation checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use genuine fixed time limits, state the consequence accurately, and stop displaying the claim when it expires.","whyProblematic":"A textual deadline or temporary-reservation claim pressures action, particularly where the deadline renews or its stated consequence does not occur. A stated deadline or hold creates time pressure even though the period renews, the item is not reserved or the represented consequence does not occur. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The claim describes a time-limited offer, price, availability or reservation.","It is connected to a material decision.","Replay, expiry or backend evidence can test its truth and consequence.","Exclude or qualify the label where numeric countdown classified separately.","Exclude or qualify the label where genuine disclosed deadline with represented consequence.","Exclude or qualify the label where general seasonal marketing without a concrete temporal claim."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which timestamped inventory, reservation, demand or offer event substantiates “Claim discount now”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The claim describes a time-limited offer, price, availability or reservation”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “Numeric countdown classified separately”?","Which timestamped inventory, reservation, demand or offer event substantiates “Reserved while you book”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It is connected to a material decision”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “genuine disclosed deadline with represented consequence”?","Which complete journey evidence supports or contradicts the limited-time or reservation claim classification?"],"evidence":["Versioned captures of the Pricing and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed limited-time or reservation claim mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message"],"related":["low-stock-claim","high-demand-claim","false-urgency-and-scarcity"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side subscription landing page interface showing “Offer ends Sunday” and the clearer alternative “Current annual price”.","provenance":"Original hypothetical subscription landing page example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Low-stock claim: definition, examples and fairer design","slug":"low-stock-claim","preferredName":"Low-stock claim","directAnswer":"The label “Low-stock claim” describes this recurring design mechanism: a claim that few units remain applies purchase pressure, especially where inventory basis or persistence is unsupported. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A claim that few units remain applies purchase pressure, especially where inventory basis or persistence is unsupported. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["scarcity stock message","only a few left"],"category":"Urgency","family":"Urgency","journeyStages":["Pricing","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Fashion product page","scenario":"A fictional store displays “Only one left” for every size and colour even though the warning is not linked to variant-level inventory.","harm":"A shopper may rush or skip comparison because a broad scarcity claim appears precise."},{"type":"Illustrative example","context":"Appliance checkout","scenario":"A fictional retailer says “Last item online” by counting one local warehouse while identical inventory is available through its normal fulfilment network.","harm":"The scope of the claim can exaggerate scarcity and accelerate purchase."}],"howItWorks":"A claim that few units remain applies purchase pressure, especially where inventory basis or persistence is unsupported. A quantity statement implies imminent unavailability without identifying the relevant variant, location or auditable stock state behind the number.","warningSigns":["The claim refers to remaining inventory quantity.","It appears near a transactional decision.","Falsity or misleading persistence requires replay or inventory evidence."],"harms":["A shopper may rush or skip comparison because a broad scarcity claim appears precise.","The scope of the claim can exaggerate scarcity and accelerate purchase."],"legitimateUses":["A similar design should not be classified this way where high demand without remaining quantity.","A similar design should not be classified this way where a genuine time-limited offer that makes no claim about remaining inventory quantity.","A similar design should not be classified this way where accurate live stock count with auditable basis.","A similar design should not be classified this way where a fulfilment limitation that states the relevant location, variant and current inventory source."],"problematicUi":{"label":"Only one left","copy":"Only one left The same warning appears for all sizes regardless of stock. 1 remaining Claim basis No supporting population, period, inventory or offer event is presented with this message.","annotations":["In “Generic “only one left” across every variant”, this element shows how low-stock claim can shape the decision."]},"improvedUi":{"label":"Stock for selected size","copy":"Stock for selected size The message reflects the chosen variant and current inventory. Size M · 4 available Claim basis The relevant population, period, inventory or offer state is presented with the message. View the source and period for “Size M · 4 available”","annotations":["In “Generic “only one left” across every variant”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"low-stock-claim-scenario-1","title":"Generic “only one left” across every variant","context":"Fashion product page","journeyStage":"Pricing","summary":"A fictional store displays “Only one left” for every size and colour even though the warning is not linked to variant-level inventory.","problematic":{"label":"Only one left","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Only one left"},{"id":"problematic-2-body","type":"text","text":"The same warning appears for all sizes regardless of stock.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"1 remaining","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Generic “only one left” across every variant”, this element shows how low-stock claim can shape the decision."}]},"neutral":{"label":"Stock for selected size","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Stock for selected size"},{"id":"neutral-2-body","type":"text","text":"The message reflects the chosen variant and current inventory.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"Size M · 4 available","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “Size M · 4 available”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Generic “only one left” across every variant”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the pricing decision. The cue “1 remaining” should correspond to a defined operating state and a real consequence. The example instead states: “The same warning appears for all sizes regardless of stock.” A shopper may rush or skip comparison because a broad scarcity claim appears precise.","fairDesignPrinciple":"Tie stock messages to the selected item and timestamped inventory, or omit them when the basis is unavailable.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “1 remaining”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The claim refers to remaining inventory quantity”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “High demand without remaining quantity”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side fashion product page interface showing “Only one left” and the clearer alternative “Stock for selected size”.","provenance":"Original hypothetical fashion product page example created for this library; no real business, product or interface is depicted."},{"id":"low-stock-claim-scenario-2","title":"Warehouse stock used to imply online scarcity","context":"Appliance checkout","journeyStage":"Checkout","summary":"A fictional retailer says “Last item online” by counting one local warehouse while identical inventory is available through its normal fulfilment network.","problematic":{"label":"Last one available","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Last one available"},{"id":"problematic-2-body","type":"text","text":"The warning omits that other normal fulfilment stock exists.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Buy before it is gone","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Warehouse stock used to imply online scarcity”, this element shows how low-stock claim can shape the decision."}]},"neutral":{"label":"Local delivery availability","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Local delivery availability"},{"id":"neutral-2-body","type":"text","text":"The message names the location and alternative fulfilment option.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"1 local · delivery stock available","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “1 local · delivery stock available”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Warehouse stock used to imply online scarcity”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The message applies immediate pressure at the checkout decision. The cue “Buy before it is gone” should correspond to a defined operating state and a real consequence. The example instead states: “The warning omits that other normal fulfilment stock exists.” The scope of the claim can exaggerate scarcity and accelerate purchase.","fairDesignPrinciple":"State the relevant inventory scope and delivery constraint in language the buyer can understand.","reviewPrompts":["Which timestamped inventory, reservation, demand or offer event substantiates “Buy before it is gone”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It appears near a transactional decision”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “time-limited offer”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side appliance checkout interface showing “Last one available” and the clearer alternative “Local delivery availability”.","provenance":"Original hypothetical appliance checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use current inventory data, avoid false precision, and remove or update the claim promptly when stock changes.","whyProblematic":"A claim that few units remain applies purchase pressure, especially where inventory basis or persistence is unsupported. A quantity statement implies imminent unavailability without identifying the relevant variant, location or auditable stock state behind the number. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The claim refers to remaining inventory quantity.","It appears near a transactional decision.","Falsity or misleading persistence requires replay or inventory evidence.","Exclude or qualify the label where high demand without remaining quantity.","Exclude or qualify the label where a genuine time-limited offer that makes no claim about remaining inventory quantity.","Exclude or qualify the label where accurate live stock count with auditable basis.","Exclude or qualify the label where a fulfilment limitation that states the relevant location, variant and current inventory source."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which timestamped inventory, reservation, demand or offer event substantiates “1 remaining”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The claim refers to remaining inventory quantity”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “High demand without remaining quantity”?","Which timestamped inventory, reservation, demand or offer event substantiates “Buy before it is gone”, and what changes when its limit is reached?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It appears near a transactional decision”?","What happens when the stated limit is reached, and could the observed message be the legitimate case “time-limited offer”?","Which complete journey evidence supports or contradicts the low-stock claim classification?"],"evidence":["Versioned captures of the Pricing and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed low-stock claim mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message"],"related":["high-demand-claim","false-urgency-and-scarcity","limited-time-or-reservation-claim"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side fashion product page interface showing “Only one left” and the clearer alternative “Stock for selected size”.","provenance":"Original hypothetical fashion product page example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Misleading reference pricing: definition, examples and fairer design","slug":"misleading-reference-pricing","preferredName":"Misleading reference pricing","directAnswer":"The label “Misleading reference pricing” describes this recurring design mechanism: a comparison or prior price creates an inaccurate or insufficiently explained impression of savings. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A comparison or prior price creates an inaccurate or insufficiently explained impression of savings. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["fake discount","false was price","reference-price anchoring"],"category":"Interface interference","family":"Interface interference","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Fashion product page","scenario":"A fictional store shows “Was €180, now €79” even though the jacket has never been offered for €180 and sells at €79 throughout the season.","harm":"The reference can create an unsupported impression of exceptional savings and rush comparison."},{"type":"Illustrative example","context":"Travel membership offer","scenario":"A fictional booking service calls €90 a “40% member saving” by comparing it with a €150 flexible fare that is not offered for the same dates or conditions.","harm":"Travellers may overvalue membership because the compared offers are not meaningfully equivalent."}],"howItWorks":"A comparison or prior price creates an inaccurate or insufficiently explained impression of savings. A current price is evaluated against an unsupported or non-equivalent comparator, manufacturing a saving that can distort value and timing judgments.","warningSigns":["A current price is framed against a reference or discount claim.","Arithmetic, comparison basis or external history is inconsistent, inaccurate or unverified.","The anchor plausibly affects perceived value."],"harms":["The reference can create an unsupported impression of exceptional savings and rush comparison.","Travellers may overvalue membership because the compared offers are not meaningfully equivalent."],"legitimateUses":["A similar design should not be classified this way where accurate, representative and clearly explained reference price.","A similar design should not be classified this way where mere display of two genuinely different product prices."],"problematicUi":{"label":"Weekend saving","copy":"Weekend saving An unsubstantiated former price makes the current price appear exceptional. Displayed amount €180 Was €180 · now €79 €79","annotations":["In “Permanent sale uses an invented “was” price”, this element shows how misleading reference pricing can shape the decision."]},"improvedUi":{"label":"Current price","copy":"Current price The product is €79; any comparison states its verified basis and period. Displayed amount €79 Was €180 · now €79 Price, period and commitment The price and material terms associated with “€79” remain beside this choice.","annotations":["In “Permanent sale uses an invented “was” price”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"misleading-reference-pricing-scenario-1","title":"Permanent sale uses an invented “was” price","context":"Fashion product page","journeyStage":"Pricing","summary":"A fictional store shows “Was €180, now €79” even though the jacket has never been offered for €180 and sells at €79 throughout the season.","problematic":{"label":"Weekend saving","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Weekend saving"},{"id":"problematic-2-body","type":"text","text":"An unsubstantiated former price makes the current price appear exceptional.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€180","detail":"Was €180 · now €79"},{"id":"problematic-4-link","type":"link","text":"€79","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Permanent sale uses an invented “was” price”, this element shows how misleading reference pricing can shape the decision."}]},"neutral":{"label":"Current price","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Current price"},{"id":"neutral-2-body","type":"text","text":"The product is €79; any comparison states its verified basis and period.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Displayed amount","amount":"€79"},{"id":"neutral-4-link","type":"link","text":"Was €180 · now €79","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “€79” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Permanent sale uses an invented “was” price”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “An unsubstantiated former price makes the current price appear exceptional.” Its influence should be tested by comparing the consequence and usability of “Was €180 · now €79” with “€79”. The reference can create an unsupported impression of exceptional savings and rush comparison.","fairDesignPrinciple":"Use a substantiated comparison basis, identify the period or comparator and remove savings claims that cannot be evidenced.","reviewPrompts":["Do “Was €180 · now €79” and “€79” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “A current price is framed against a reference or discount claim”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Accurate, representative and clearly explained reference price”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side fashion product page interface showing “Weekend saving” and the clearer alternative “Current price”.","provenance":"Original hypothetical fashion product page example created for this library; no real business, product or interface is depicted."},{"id":"misleading-reference-pricing-scenario-2","title":"Member discount compares with unavailable tier","context":"Travel membership offer","journeyStage":"Pricing","summary":"A fictional booking service calls €90 a “40% member saving” by comparing it with a €150 flexible fare that is not offered for the same dates or conditions.","problematic":{"label":"Members save 40%","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Members save 40%"},{"id":"problematic-2-body","type":"text","text":"The comparator has different dates and conditions and is not purchasable in this search.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€90","detail":"€90 vs €150"},{"id":"problematic-4-link","type":"link","text":"Member €90 · public €105","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Member discount compares with unavailable tier”, this element shows how misleading reference pricing can shape the decision."}]},"neutral":{"label":"Like-for-like price comparison","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Like-for-like price comparison"},{"id":"neutral-2-body","type":"text","text":"The member and public fares share the same dates, room and cancellation terms.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Displayed amount","amount":"€90","detail":"Member €90 · public €105"},{"id":"neutral-4-link","type":"link","text":"€90 vs €150","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Member €90 · public €105” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Member discount compares with unavailable tier”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the pricing decision. The problematic state shows: “The comparator has different dates and conditions and is not purchasable in this search.” Its influence should be tested by comparing the consequence and usability of “€90 vs €150” with “Member €90 · public €105”. Travellers may overvalue membership because the compared offers are not meaningfully equivalent.","fairDesignPrinciple":"Compare like-for-like offers and state the fare conditions, date and audience behind any saving.","reviewPrompts":["Do “€90 vs €150” and “Member €90 · public €105” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “Arithmetic, comparison basis or external history is inconsistent, inaccurate or unverified”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “mere display of two genuinely different product prices”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side travel membership offer interface showing “Members save 40%” and the clearer alternative “Like-for-like price comparison”.","provenance":"Original hypothetical travel membership offer example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use a truthful, representative comparison basis and explain the reference period or basis close to the claim.","whyProblematic":"A comparison or prior price creates an inaccurate or insufficiently explained impression of savings. A current price is evaluated against an unsupported or non-equivalent comparator, manufacturing a saving that can distort value and timing judgments. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A current price is framed against a reference or discount claim.","Arithmetic, comparison basis or external history is inconsistent, inaccurate or unverified.","The anchor plausibly affects perceived value.","Exclude or qualify the label where accurate, representative and clearly explained reference price.","Exclude or qualify the label where mere display of two genuinely different product prices."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Was €180 · now €79” and “€79” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “A current price is framed against a reference or discount claim”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Accurate, representative and clearly explained reference price”?","Do “€90 vs €150” and “Member €90 · public €105” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “Arithmetic, comparison basis or external history is inconsistent, inaccurate or unverified”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “mere display of two genuinely different product prices”?","Which complete journey evidence supports or contradicts the misleading reference pricing classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed misleading reference pricing mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side fashion product page interface showing “Weekend saving” and the clearer alternative “Current price”.","provenance":"Original hypothetical fashion product page example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Negative option or unauthorised transaction: definition, examples and fairer design","slug":"negative-option-or-unauthorised-transaction","preferredName":"Negative option or unauthorised transaction","directAnswer":"The label “Negative option or unauthorised transaction” describes this recurring design mechanism: silence, inactivity or an ineffective prior interaction is treated as authorisation for a paid or consequential transaction. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Silence, inactivity or an ineffective prior interaction is treated as authorisation for a paid or consequential transaction. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["inertia selling","silence as consent","unauthorised renewal"],"category":"Sneaking","family":"Sneaking","journeyStages":["Subscription","Cancellation"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Annual service renewal","scenario":"A fictional service states that failing to reply to an email will be treated as approval for a new paid add-on at renewal.","harm":"Inactivity may produce a charge that the subscriber never actively authorised."},{"type":"Illustrative example","context":"Subscription extension","scenario":"A fictional trial email provides an opt-out link that returns an error, then charges the customer because the failed request is recorded as no response.","harm":"A person can be charged despite attempting to refuse the transaction through the supplied route."}],"howItWorks":"Silence, inactivity or an ineffective prior interaction is treated as authorisation for a paid or consequential transaction. Silence, a failed refusal or another non-affirmative event is interpreted as permission for a new charge, product or continuing commercial state.","warningSigns":["A charge, supply or commitment occurs or is scheduled.","No clear current assent to that consequence is evidenced.","The design relies on non-response, hidden default or ambiguous prior wording."],"harms":["Inactivity may produce a charge that the subscriber never actively authorised.","A person can be charged despite attempting to refuse the transaction through the supplied route."],"legitimateUses":["A similar design should not be classified this way where clearly disclosed subscription renewal supported by valid assent and applicable notices.","A similar design should not be classified this way where transaction explicitly confirmed at the material decision point.","A similar design should not be classified this way where purely free continuation with no material consequence."],"problematicUi":{"label":"Upgrade at renewal","copy":"Upgrade at renewal No reply is treated as acceptance of a €60 add-on. No action means yes Keep current plan","annotations":["In “Silence treated as renewal approval”, this element shows how negative option or unauthorised transaction can shape the decision."]},"improvedUi":{"label":"Optional renewal upgrade","copy":"Optional renewal upgrade The add-on remains off unless the subscriber selects it. Keep current plan No action means yes Choice consequences The consequence of selecting “Keep current plan” is displayed beside the option.","annotations":["In “Silence treated as renewal approval”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"negative-option-or-unauthorised-transaction-scenario-1","title":"Silence treated as renewal approval","context":"Annual service renewal","journeyStage":"Subscription","summary":"A fictional service states that failing to reply to an email will be treated as approval for a new paid add-on at renewal.","problematic":{"label":"Upgrade at renewal","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Upgrade at renewal"},{"id":"problematic-2-body","type":"text","text":"No reply is treated as acceptance of a €60 add-on.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"No action means yes","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Keep current plan","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Silence treated as renewal approval”, this element shows how negative option or unauthorised transaction can shape the decision."}]},"neutral":{"label":"Optional renewal upgrade","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Optional renewal upgrade"},{"id":"neutral-2-body","type":"text","text":"The add-on remains off unless the subscriber selects it.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Keep current plan","checked":false},{"id":"neutral-4-radio","type":"radio","label":"No action means yes","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Keep current plan” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Silence treated as renewal approval”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “No reply is treated as acceptance of a €60 add-on.” Review the timing and affirmative selection needed before “No action means yes” changes price, product or recurring liability. Inactivity may produce a charge that the subscriber never actively authorised.","fairDesignPrinciple":"Do not treat silence as a new purchase; request a clear choice and preserve the existing contract if none is made.","reviewPrompts":["Which affirmative action authorises “No action means yes”, and where is the resulting price, product or recurring state shown before commitment?","Capture every peer option, its default state and visual prominence; do those states support “A charge, supply or commitment occurs or is scheduled”?","Which specific affirmative event creates the final commercial state, and could “Clearly disclosed subscription renewal supported by valid assent and applicable notices” explain the observed outcome instead?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side annual service renewal interface showing “Upgrade at renewal” and the clearer alternative “Optional renewal upgrade”.","provenance":"Original hypothetical annual service renewal example created for this library; no real business, product or interface is depicted."},{"id":"negative-option-or-unauthorised-transaction-scenario-2","title":"Broken opt-out still results in a charge","context":"Subscription extension","journeyStage":"Cancellation","summary":"A fictional trial email provides an opt-out link that returns an error, then charges the customer because the failed request is recorded as no response.","problematic":{"label":"Keep your trial benefits","layout":"cancellation-flow","elements":[{"id":"problematic-1-heading","type":"heading","text":"Keep your trial benefits"},{"id":"problematic-2-body","type":"text","text":"The opt-out link errors and the system interprets failure as acceptance.","tone":"warning"},{"id":"problematic-3-step","type":"step","label":"Blocking step: No response recorded","status":"current"},{"id":"problematic-4-step","type":"step","label":"Obscured outcome: Download opt-out receipt","status":"current"}],"annotations":[{"targetId":"problematic-4-step","text":"In “Broken opt-out still results in a charge”, this element shows how negative option or unauthorised transaction can shape the decision."}]},"neutral":{"label":"Your opt-out is recorded","layout":"cancellation-flow","elements":[{"id":"neutral-1-heading","type":"heading","text":"Your opt-out is recorded"},{"id":"neutral-2-body","type":"text","text":"The request receives a timestamped receipt and no renewal charge is created.","tone":"default"},{"id":"neutral-3-step","type":"step","label":"Completion step: Download opt-out receipt","status":"completed"},{"id":"neutral-4-step","type":"step","label":"Recorded outcome: No response recorded","status":"completed"},{"id":"neutral-5-badge","type":"badge","text":"Request recorded: Download opt-out receipt","tone":"positive"}],"annotations":[{"targetId":"neutral-5-badge","text":"In “Broken opt-out still results in a charge”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “The opt-out link errors and the system interprets failure as acceptance.” Review the timing and affirmative selection needed before “No response recorded” changes price, product or recurring liability. A person can be charged despite attempting to refuse the transaction through the supplied route.","fairDesignPrinciple":"Make the refusal route reliable, record attempted requests and suspend charging when the service cannot confirm the choice.","reviewPrompts":["Which affirmative action authorises “No response recorded”, and where is the resulting price, product or recurring state shown before commitment?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “No clear current assent to that consequence is evidenced”?","Which specific affirmative event creates the final commercial state, and could “transaction explicitly confirmed at the material decision point” explain the observed outcome instead?"],"sourceIds":["gray-ontology-dark-patterns-2024"],"altText":"Side-by-side subscription extension interface showing “Keep your trial benefits” and the clearer alternative “Your opt-out is recorded”.","provenance":"Original hypothetical subscription extension example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Obtain clear, specific assent before any paid consequence and do not treat silence or inactivity as a new authorisation.","whyProblematic":"Silence, inactivity or an ineffective prior interaction is treated as authorisation for a paid or consequential transaction. Silence, a failed refusal or another non-affirmative event is interpreted as permission for a new charge, product or continuing commercial state. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A charge, supply or commitment occurs or is scheduled.","No clear current assent to that consequence is evidenced.","The design relies on non-response, hidden default or ambiguous prior wording.","Exclude or qualify the label where clearly disclosed subscription renewal supported by valid assent and applicable notices.","Exclude or qualify the label where transaction explicitly confirmed at the material decision point.","Exclude or qualify the label where purely free continuation with no material consequence."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which affirmative action authorises “No action means yes”, and where is the resulting price, product or recurring state shown before commitment?","Capture every peer option, its default state and visual prominence; do those states support “A charge, supply or commitment occurs or is scheduled”?","Which specific affirmative event creates the final commercial state, and could “Clearly disclosed subscription renewal supported by valid assent and applicable notices” explain the observed outcome instead?","Which affirmative action authorises “No response recorded”, and where is the resulting price, product or recurring state shown before commitment?","Count steps, waits, offers and channel changes through final confirmation; where does the route meet “No clear current assent to that consequence is evidenced”?","Which specific affirmative event creates the final commercial state, and could “transaction explicitly confirmed at the material decision point” explain the observed outcome instead?","Which complete journey evidence supports or contradicts the negative option or unauthorised transaction classification?"],"evidence":["Versioned captures of the Subscription and Cancellation states before, during and after the relevant decision","Configuration, content and event records supporting the observed negative option or unauthorised transaction mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["sneak-into-basket","drip-pricing-and-hidden-charges","hidden-subscription-or-forced-continuity"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-ucpd-2005-29"],"altText":"Side-by-side annual service renewal interface showing “Upgrade at renewal” and the clearer alternative “Optional renewal upgrade”.","provenance":"Original hypothetical annual service renewal example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Obstructed alternative: definition, examples and fairer design","slug":"obstructed-alternative","preferredName":"Obstructed alternative","directAnswer":"The label “Obstructed alternative” describes this recurring design mechanism: a relevant alternative within the current decision is hidden, blocked or made materially harder than the business-favoured action. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A relevant alternative within the current decision is hidden, blocked or made materially harder than the business-favoured action. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["single-screen obstruction","hidden alternative","asymmetric choice path"],"category":"Obstruction","family":"Obstruction","journeyStages":["Checkout","Signup"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Retail basket","scenario":"A fictional shop displays account creation as the only button and places guest checkout inside a collapsed paragraph titled “Other information”.","harm":"A viable alternative becomes materially harder to discover than the business-preferred account route."},{"type":"Illustrative example","context":"Cookie preferences","scenario":"A fictional consent layer accepts optional tracking in one click but requires opening three panels and disabling twelve switches to refuse it.","harm":"The asymmetric path can deter a user from reaching a genuine lower-data choice."}],"howItWorks":"A relevant alternative within the current decision is hidden, blocked or made materially harder than the business-favoured action. A real alternative remains technically present but is buried, de-emphasised or placed behind extra discovery effort compared with the favoured route.","warningSigns":["The options address the same decision.","The alternative is available in principle but requires additional discovery, interaction or recovery from obstruction.","The asymmetry is not necessary for security, safety or the user's stated task."],"harms":["A viable alternative becomes materially harder to discover than the business-preferred account route.","The asymmetric path can deter a user from reaching a genuine lower-data choice."],"legitimateUses":["A similar design should not be classified this way where different actions with genuinely different complexity.","A similar design should not be classified this way where exit from an existing subscription, which is classified as hard to cancel.","A similar design should not be classified this way where alternative unavailable for a disclosed eligibility reason."],"problematicUi":{"label":"Save time with an account","copy":"Save time with an account The visible action creates an account; the guest path is buried in unrelated copy. Create account Continue as guest","annotations":["In “Guest checkout hidden behind account copy”, this element shows how obstructed alternative can shape the decision."]},"improvedUi":{"label":"Choose a checkout route","copy":"Choose a checkout route Guest checkout and optional account creation appear together. Continue as guest Create account Choice consequences The consequence of selecting “Continue as guest” is displayed beside the option.","annotations":["In “Guest checkout hidden behind account copy”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"obstructed-alternative-scenario-1","title":"Guest checkout hidden behind account copy","context":"Retail basket","journeyStage":"Checkout","summary":"A fictional shop displays account creation as the only button and places guest checkout inside a collapsed paragraph titled “Other information”.","problematic":{"label":"Save time with an account","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Save time with an account"},{"id":"problematic-2-body","type":"text","text":"The visible action creates an account; the guest path is buried in unrelated copy.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Create account","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Continue as guest","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Guest checkout hidden behind account copy”, this element shows how obstructed alternative can shape the decision."}]},"neutral":{"label":"Choose a checkout route","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose a checkout route"},{"id":"neutral-2-body","type":"text","text":"Guest checkout and optional account creation appear together.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Continue as guest","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Create account","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Continue as guest” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Guest checkout hidden behind account copy”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this retail basket example, the obstacle is: “The visible action creates an account; the guest path is buried in unrelated copy.” Evidence should show whether the alternative remains usable and whether “Continue as guest” reaches the represented state. A viable alternative becomes materially harder to discover than the business-preferred account route.","fairDesignPrinciple":"Present guest and account routes together with clear consequences and comparable interaction effort.","reviewPrompts":["How many steps, waits and channel changes separate “Create account” from the completed retail basket outcome?","Capture every peer option, its default state and visual prominence; do those states support “The options address the same decision”?","Measure the same task through the clearest available route: does the effort difference persist once “Different actions with genuinely different complexity” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side retail basket interface showing “Save time with an account” and the clearer alternative “Choose a checkout route”.","provenance":"Original hypothetical retail basket example created for this library; no real business, product or interface is depicted."},{"id":"obstructed-alternative-scenario-2","title":"Rejecting optional tracking needs multiple panels","context":"Cookie preferences","journeyStage":"Signup","summary":"A fictional consent layer accepts optional tracking in one click but requires opening three panels and disabling twelve switches to refuse it.","problematic":{"label":"Your privacy options","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Your privacy options"},{"id":"problematic-2-body","type":"text","text":"Acceptance is immediate; refusal is distributed across three nested screens.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Accept all","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Reject optional tracking","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Rejecting optional tracking needs multiple panels”, this element shows how obstructed alternative can shape the decision."}]},"neutral":{"label":"Choose optional tracking","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose optional tracking"},{"id":"neutral-2-body","type":"text","text":"Accept all, reject optional and customise are visible at the same level.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Reject optional tracking","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Accept all","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Reject optional tracking” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Rejecting optional tracking needs multiple panels”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this cookie preferences example, the obstacle is: “Acceptance is immediate; refusal is distributed across three nested screens.” Evidence should show whether the alternative remains usable and whether “Reject optional tracking” reaches the represented state. The asymmetric path can deter a user from reaching a genuine lower-data choice.","fairDesignPrinciple":"Offer equally direct accept, reject and customise paths while preserving granular settings for users who want them.","reviewPrompts":["How many steps, waits and channel changes separate “Accept all” from the completed cookie preferences outcome?","Capture every peer option, its default state and visual prominence; do those states support “The alternative is available in principle but requires additional discovery, interaction or recovery from obstruction”?","Measure the same task through the clearest available route: does the effort difference persist once “exit from an existing subscription, which is classified as hard to cancel” is accounted for?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side cookie preferences interface showing “Your privacy options” and the clearer alternative “Choose optional tracking”.","provenance":"Original hypothetical cookie preferences example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Place equivalent alternatives in the same decision context with comparable discoverability and no unnecessary steps.","whyProblematic":"A relevant alternative within the current decision is hidden, blocked or made materially harder than the business-favoured action. A real alternative remains technically present but is buried, de-emphasised or placed behind extra discovery effort compared with the favoured route. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The options address the same decision.","The alternative is available in principle but requires additional discovery, interaction or recovery from obstruction.","The asymmetry is not necessary for security, safety or the user's stated task.","Exclude or qualify the label where different actions with genuinely different complexity.","Exclude or qualify the label where exit from an existing subscription, which is classified as hard to cancel.","Exclude or qualify the label where alternative unavailable for a disclosed eligibility reason."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Create account” from the completed retail basket outcome?","Capture every peer option, its default state and visual prominence; do those states support “The options address the same decision”?","Measure the same task through the clearest available route: does the effort difference persist once “Different actions with genuinely different complexity” is accounted for?","How many steps, waits and channel changes separate “Accept all” from the completed cookie preferences outcome?","Capture every peer option, its default state and visual prominence; do those states support “The alternative is available in principle but requires additional discovery, interaction or recovery from obstruction”?","Measure the same task through the clearest available route: does the effort difference persist once “exit from an existing subscription, which is classified as hard to cancel” is accounted for?","Which complete journey evidence supports or contradicts the obstructed alternative classification?"],"evidence":["Versioned captures of the Checkout and Signup states before, during and after the relevant decision","Configuration, content and event records supporting the observed obstructed alternative mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["cancellation-friction","account-deletion-obstruction","privacy-maze"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side retail basket interface showing “Save time with an account” and the clearer alternative “Choose a checkout route”.","provenance":"Original hypothetical retail basket example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Popularity claims: definition, examples and fairer design","slug":"popularity-claims","preferredName":"Popularity claims","directAnswer":"The label “Popularity claims” describes this recurring design mechanism: aggregate popularity or approval is presented to steer a choice where the metric, population, period or basis is unclear or unsupported. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Aggregate popularity or approval is presented to steer a choice where the metric, population, period or basis is unclear or unsupported. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["best seller claim","most popular","aggregate social proof"],"category":"Social proof","family":"Social proof","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Subscription plans","scenario":"A fictional service labels its highest-margin plan “Most popular” without recording sales, selection period or the population being measured.","harm":"The badge may steer users using an unsupported impression of collective preference."},{"type":"Illustrative example","context":"Marketplace results","scenario":"A fictional marketplace assigns “Bestseller” to whichever item yields the highest commission, regardless of units sold.","harm":"Shoppers may interpret commercial ranking as genuine purchase popularity."}],"howItWorks":"Aggregate popularity or approval is presented to steer a choice where the metric, population, period or basis is unclear or unsupported. A ranking or badge implies collective preference without a defined population, period and metric, or substitutes a commercial objective for actual popularity.","warningSigns":["The claim asserts relative or aggregate popularity.","It is used near a choice or recommendation.","The relevant metric basis requires provenance verification before alleging deception."],"harms":["The badge may steer users using an unsupported impression of collective preference.","Shoppers may interpret commercial ranking as genuine purchase popularity."],"legitimateUses":["A similar design should not be classified this way where individual testimonial.","A similar design should not be classified this way where recent-activity message.","A similar design should not be classified this way where transparent internally computed recommendation not presented as social behaviour."],"problematicUi":{"label":"Most popular","copy":"Most popular No population, period or selection measure supports the badge. Choose Pro Compare Pro features","annotations":["In ““Most popular” has no defined metric”, this element shows how popularity claims can shape the decision."]},"improvedUi":{"label":"Plan comparison","copy":"Plan comparison Feature and price differences replace the unsupported popularity cue. Compare Pro features Choose Pro Price, period and commitment The price and material terms associated with “Compare Pro features” remain beside this choice.","annotations":["In ““Most popular” has no defined metric”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"popularity-claims-scenario-1","title":"“Most popular” has no defined metric","context":"Subscription plans","journeyStage":"Pricing","summary":"A fictional service labels its highest-margin plan “Most popular” without recording sales, selection period or the population being measured.","problematic":{"label":"Most popular","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Most popular"},{"id":"problematic-2-body","type":"text","text":"No population, period or selection measure supports the badge.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Choose Pro","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Compare Pro features","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In ““Most popular” has no defined metric”, this element shows how popularity claims can shape the decision."}]},"neutral":{"label":"Plan comparison","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Plan comparison"},{"id":"neutral-2-body","type":"text","text":"Feature and price differences replace the unsupported popularity cue.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Compare Pro features","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Choose Pro","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Compare Pro features” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In ““Most popular” has no defined metric”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The interface asks the user to rely on other people’s behaviour or approval. The cue “Choose Pro” has persuasive meaning only if its population, period, metric and relationship match the represented claim. The panel instead says: “No population, period or selection measure supports the badge.” The badge may steer users using an unsupported impression of collective preference.","fairDesignPrinciple":"Use the claim only with a defined, current and supportable metric, or use a factual feature label instead.","reviewPrompts":["Which source record substantiates “Choose Pro”, including its population, period, metric and any commercial relationship?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The claim asserts relative or aggregate popularity”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “Individual testimonial”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side subscription plans interface showing “Most popular” and the clearer alternative “Plan comparison”.","provenance":"Original hypothetical subscription plans example created for this library; no real business, product or interface is depicted."},{"id":"popularity-claims-scenario-2","title":"Bestseller badge follows margin rather than sales","context":"Marketplace results","journeyStage":"Pricing","summary":"A fictional marketplace assigns “Bestseller” to whichever item yields the highest commission, regardless of units sold.","problematic":{"label":"Bestseller","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"Bestseller"},{"id":"problematic-2-body","type":"text","text":"The badge reflects commission, not customer purchases.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Top customer choice","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Bestseller badge follows margin rather than sales”, this element shows how popularity claims can shape the decision."}]},"neutral":{"label":"Sponsored placement","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Sponsored placement"},{"id":"neutral-2-body","type":"text","text":"Commercial ranking is labelled and no sales popularity is implied.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"View sponsored item","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “View sponsored item”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Bestseller badge follows margin rather than sales”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The interface asks the user to rely on other people’s behaviour or approval. The cue “Top customer choice” has persuasive meaning only if its population, period, metric and relationship match the represented claim. The panel instead says: “The badge reflects commission, not customer purchases.” Shoppers may interpret commercial ranking as genuine purchase popularity.","fairDesignPrinciple":"Separate sponsored or commercial placement from verified sales-based popularity and state the ranking basis.","reviewPrompts":["Which source record substantiates “Top customer choice”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It is used near a choice or recommendation”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “recent-activity message”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side marketplace results interface showing “Bestseller” and the clearer alternative “Sponsored placement”.","provenance":"Original hypothetical marketplace results example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use popularity claims only with a defined population, period and metric; document the calculation beside the claim or replace it with factual product information.","whyProblematic":"Aggregate popularity or approval is presented to steer a choice where the metric, population, period or basis is unclear or unsupported. A ranking or badge implies collective preference without a defined population, period and metric, or substitutes a commercial objective for actual popularity. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The claim asserts relative or aggregate popularity.","It is used near a choice or recommendation.","The relevant metric basis requires provenance verification before alleging deception.","Exclude or qualify the label where individual testimonial.","Exclude or qualify the label where recent-activity message.","Exclude or qualify the label where transparent internally computed recommendation not presented as social behaviour."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which source record substantiates “Choose Pro”, including its population, period, metric and any commercial relationship?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The claim asserts relative or aggregate popularity”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “Individual testimonial”?","Which source record substantiates “Top customer choice”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “It is used near a choice or recommendation”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “recent-activity message”?","Which complete journey evidence supports or contradicts the popularity claims classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed popularity claims mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message","Price-component, offer-version and calculation records linked to the captured screen"],"related":["activity-messages","testimonials-or-endorsements"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side subscription plans interface showing “Most popular” and the clearer alternative “Plan comparison”.","provenance":"Original hypothetical subscription plans example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Preselection and commercially preferred defaults","slug":"preselection-and-defaults","preferredName":"Preselection and defaults","directAnswer":"Preselection sets a choice before the user actively makes it. Defaults can reduce effort and are not inherently unlawful, but EU rules expressly restrict some pre-ticked extra payments and require valid consent in relevant data contexts. Risk rises when a default adds cost, sharing or commitment and the alternative is hard to notice or select.","definition":"A business-favoured option with a plausible adverse consequence is active before a deliberate user choice. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["default bias","pre-ticked choice","default-on setting","bad defaults","default add-on","deceptive snugness"],"category":"Choice architecture","family":"Interface interference","journeyStages":["Signup","Checkout","Subscription","Account Management"],"jurisdiction":"European Union","status":"Current law","legalBasis":[{"provision":"CRD Article 22","sourceIds":["eu-crd-2011-83"],"classification":"Express rule","explanation":"Additional payments require express consent; the Directive addresses consent inferred through default options the consumer must reject."},{"provision":"GDPR Articles 4(11) and 7","sourceIds":["eu-gdpr-2016-679"],"classification":"Possible risk indicator","explanation":"Where consent is the legal basis, it must be freely given, specific, informed and unambiguous and demonstrated by the controller."}],"examples":[{"type":"Illustrative example","context":"Electronics checkout","scenario":"A fictional retailer preselects a €12 protection plan and includes it in the total before the shopper has made a distinct choice.","harm":"The shopper may pay for an add-on through inattention rather than active agreement."},{"type":"Illustrative example","context":"Streaming plan selection","scenario":"A fictional streaming service opens with the annual plan selected and highlights a monthly-equivalent figure while the payable annual total is smaller.","harm":"A user may commit to a larger upfront payment without making an active billing-period choice."},{"type":"Illustrative example","context":"Ticket checkout","scenario":"A paid cancellation-protection add-on is pre-ticked in the order summary and must be removed through a small control away from the displayed total.","harm":"The buyer may pay for an optional extra without making an express, informed selection."},{"type":"Illustrative example","context":"Account settings","scenario":"A new sharing feature is enabled by default and the off setting is placed in a separate advanced-settings area with no explanation during rollout.","harm":"People may disclose information or adopt a setting they would not have actively chosen."}],"howItWorks":"A business-favoured option with a plausible adverse consequence is active before a deliberate user choice. The system chooses a consequential option before the user acts, allowing inattention or momentum to preserve a paid, data-sharing or longer-term state.","warningSigns":["The state is selected at first relevant presentation.","The default benefits the business or increases cost, data use, tracking or commitment.","The user must act to avoid the consequence."],"harms":["The shopper may pay for an add-on through inattention rather than active agreement.","A user may commit to a larger upfront payment without making an active billing-period choice."],"legitimateUses":["A similar design should not be classified this way where consumer-protective or neutral default.","A similar design should not be classified this way where state restored from a prior explicit user choice."],"problematicUi":{"label":"Order total · €211","copy":"Order total · €211 A €12 protection plan is already active in the basket. Protection included Add protection for €12","annotations":["In “Paid protection preselected in basket”, this element shows how preselection or bad default can shape the decision."]},"improvedUi":{"label":"Order total · €199","copy":"Order total · €199 Protection is optional, unselected and priced beside its control. Amount affected €12 Add protection for €12 Add protection for €12 Protection included Payable total and selected items The summary shows the line items and total before “Add protection for €12” is activated.","annotations":["In “Paid protection preselected in basket”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"preselection-or-bad-default-scenario-1","title":"Paid protection preselected in basket","context":"Electronics checkout","journeyStage":"Checkout","summary":"A fictional retailer preselects a €12 protection plan and includes it in the total before the shopper has made a distinct choice.","problematic":{"label":"Order total · €211","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Order total · €211"},{"id":"problematic-2-body","type":"text","text":"A €12 protection plan is already active in the basket.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Protection included","tone":"warning"},{"id":"problematic-4-link","type":"link","text":"Add protection for €12","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Paid protection preselected in basket”, this element shows how preselection or bad default can shape the decision."}]},"neutral":{"label":"Order total · €199","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Order total · €199"},{"id":"neutral-2-body","type":"text","text":"Protection is optional, unselected and priced beside its control.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€12","detail":"Add protection for €12"},{"id":"neutral-4-button","type":"button","text":"Add protection for €12","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Protection included","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Add protection for €12” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Paid protection preselected in basket”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the checkout decision. The problematic state shows: “A €12 protection plan is already active in the basket.” Its influence should be tested by comparing the consequence and usability of “Protection included” with “Add protection for €12”. The shopper may pay for an add-on through inattention rather than active agreement.","fairDesignPrinciple":"Leave paid extras unselected, describe their price and require a deliberate choice before adding them.","reviewPrompts":["Do “Protection included” and “Add protection for €12” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The state is selected at first relevant presentation”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Consumer-protective or neutral default”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side electronics checkout interface showing “Order total · €211” and the clearer alternative “Order total · €199”.","provenance":"Original hypothetical electronics checkout example created for this library; no real business, product or interface is depicted."},{"id":"preselection-or-bad-default-scenario-2","title":"Annual plan active by default","context":"Streaming plan selection","journeyStage":"Subscription","summary":"A fictional streaming service opens with the annual plan selected and highlights a monthly-equivalent figure while the payable annual total is smaller.","problematic":{"label":"Choose your plan","layout":"choice-list","elements":[{"id":"problematic-1-heading","type":"heading","text":"Choose your plan"},{"id":"problematic-2-body","type":"text","text":"Annual billing is active before the user chooses and its total is visually secondary.","tone":"warning"},{"id":"problematic-3-radio","type":"radio","label":"Annual selected","checked":true},{"id":"problematic-4-radio","type":"radio","label":"Select monthly or annual","checked":false}],"annotations":[{"targetId":"problematic-4-radio","text":"In “Annual plan active by default”, this element shows how preselection or bad default can shape the decision."}]},"neutral":{"label":"Choose a billing period","layout":"choice-list","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose a billing period"},{"id":"neutral-2-body","type":"text","text":"No option is preselected; monthly and annual totals appear beside each radio control.","tone":"default"},{"id":"neutral-3-radio","type":"radio","label":"Select monthly or annual","checked":false},{"id":"neutral-4-radio","type":"radio","label":"Annual selected","checked":false},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Choice consequences","content":"The consequence of selecting “Select monthly or annual” is displayed beside the option.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Annual plan active by default”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the subscription decision. The problematic state shows: “Annual billing is active before the user chooses and its total is visually secondary.” Its influence should be tested by comparing the consequence and usability of “Annual selected” with “Select monthly or annual”. A user may commit to a larger upfront payment without making an active billing-period choice.","fairDesignPrinciple":"Start with no paid plan selected and show both payable totals and billing periods consistently.","reviewPrompts":["Do “Annual selected” and “Select monthly or annual” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “The default benefits the business or increases cost, data use, tracking or commitment”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “state restored from a prior explicit user choice”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side streaming plan selection interface showing “Choose your plan” and the clearer alternative “Choose a billing period”.","provenance":"Original hypothetical streaming plan selection example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use a neutral initial state for optional payments or consent-dependent choices and require an affirmative selection. For convenience defaults that are permitted, explain the effect, provide a nearby alternative and make later reversal straightforward.","whyProblematic":"Defaults have strong behavioural effects, but their legal treatment is context-specific. Teams should identify whether a rule requires express action, whether the default changes price or data use, and whether the design makes the user's own choice legible and reversible.","contextFactors":["The state is selected at first relevant presentation.","The default benefits the business or increases cost, data use, tracking or commitment.","The user must act to avoid the consequence.","Exclude or qualify the label where consumer-protective or neutral default.","Exclude or qualify the label where state restored from a prior explicit user choice."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Protection included” and “Add protection for €12” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The state is selected at first relevant presentation”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Consumer-protective or neutral default”?","Do “Annual selected” and “Select monthly or annual” receive comparable prominence and explain their consequences before activation?","Capture every peer option, its default state and visual prominence; do those states support “The default benefits the business or increases cost, data use, tracking or commitment”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “state restored from a prior explicit user choice”?","Which complete journey evidence supports or contradicts the preselection or bad default classification?"],"evidence":["Versioned captures of the Checkout and Subscription states before, during and after the relevant decision","Configuration, content and event records supporting the observed preselection or bad default mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen","Control defaults, validation rules and consent or selection state changes"],"related":["false-hierarchy","forced-action-and-data-disclosure","hidden-information","misleading-reference-pricing"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29","eu-crd-2011-83","eu-gdpr-2016-679","eu-dsa-2022-2065"],"altText":"Side-by-side electronics checkout interface showing “Order total · €211” and the clearer alternative “Order total · €199”.","provenance":"Original hypothetical electronics checkout example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-09","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Pressured upselling: definition, examples and fairer design","slug":"pressured-upselling","preferredName":"Pressured upselling","directAnswer":"The label “Pressured upselling” describes this recurring design mechanism: a more expensive or profitable option is made the practical focal choice through preselection, visual prominence or obscured lower-cost alternatives. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A more expensive or profitable option is made the practical focal choice through preselection, visual prominence or obscured lower-cost alternatives. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["pressured selling","preselected expensive option","decoy upsell"],"category":"Interface interference","family":"Interface interference","journeyStages":["Subscription","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024","mathur-dark-patterns-at-scale-2019"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Cloud storage renewal","scenario":"A fictional renewal screen repeatedly warns that keeping the current tier will leave files “unsafe”, although the security controls are identical across tiers.","harm":"Unsupported fear framing may push a subscriber toward a costlier plan they do not need."},{"type":"Illustrative example","context":"Accommodation checkout","scenario":"A fictional booking flow places three sequential upgrade panels before room-only continuation and describes the basic booking as “missing the complete trip”.","harm":"Repeated loss framing may pressure a traveller to add services they did not seek."}],"howItWorks":"A more expensive or profitable option is made the practical focal choice through preselection, visual prominence or obscured lower-cost alternatives. Repeated prompts, unsupported risk framing or decoy value claims make keeping the existing or basic option feel unsafe, wasteful or incomplete.","warningSigns":["A lower-cost or less committed alternative exists.","The higher-value option is preselected, materially more prominent or easier.","The difference is not justified solely by the user's stated goal."],"harms":["Unsupported fear framing may push a subscriber toward a costlier plan they do not need.","Repeated loss framing may pressure a traveller to add services they did not seek."],"legitimateUses":["A similar design should not be classified this way where transparent recommendation based on declared needs with equal access to alternatives.","A similar design should not be classified this way where ordinary plan hierarchy with comparable presentation."],"problematicUi":{"label":"Protect every file now","copy":"Protect every file now Repeated warnings imply a security loss that the plan comparison does not support. Displayed amount €29 Upgrade for €29/month Upgrade for €29/month Keep current €12 plan","annotations":["In “Current plan framed as unsafe”, this element shows how pressured upselling can shape the decision."]},"improvedUi":{"label":"Compare storage plans","copy":"Compare storage plans Security is described accurately and the current plan remains an equal option. Displayed amount €12 Keep current €12 plan Keep current €12 plan Upgrade for €29/month Price, period and commitment The price and material terms associated with “Keep current €12 plan” remain beside this choice.","annotations":["In “Current plan framed as unsafe”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"pressured-upselling-scenario-1","title":"Current plan framed as unsafe","context":"Cloud storage renewal","journeyStage":"Subscription","summary":"A fictional renewal screen repeatedly warns that keeping the current tier will leave files “unsafe”, although the security controls are identical across tiers.","problematic":{"label":"Protect every file now","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Protect every file now"},{"id":"problematic-2-body","type":"text","text":"Repeated warnings imply a security loss that the plan comparison does not support.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Displayed amount","amount":"€29","detail":"Upgrade for €29/month"},{"id":"problematic-4-button","type":"button","text":"Upgrade for €29/month","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Keep current €12 plan","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Current plan framed as unsafe”, this element shows how pressured upselling can shape the decision."}]},"neutral":{"label":"Compare storage plans","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Compare storage plans"},{"id":"neutral-2-body","type":"text","text":"Security is described accurately and the current plan remains an equal option.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Displayed amount","amount":"€12","detail":"Keep current €12 plan"},{"id":"neutral-4-button","type":"button","text":"Keep current €12 plan","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Upgrade for €29/month","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Keep current €12 plan” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Current plan framed as unsafe”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the subscription decision. The problematic state shows: “Repeated warnings imply a security loss that the plan comparison does not support.” Its influence should be tested by comparing the consequence and usability of “Upgrade for €29/month” with “Keep current €12 plan”. Unsupported fear framing may push a subscriber toward a costlier plan they do not need.","fairDesignPrinciple":"Compare factual capacity and feature differences, keep the current plan equally usable and let the subscriber deliberately choose any upgrade.","reviewPrompts":["Do “Upgrade for €29/month” and “Keep current €12 plan” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “A lower-cost or less committed alternative exists”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Transparent recommendation based on declared needs with equal access to alternatives”?"],"sourceIds":["gray-ontology-dark-patterns-2024","mathur-dark-patterns-at-scale-2019"],"altText":"Side-by-side cloud storage renewal interface showing “Protect every file now” and the clearer alternative “Compare storage plans”.","provenance":"Original hypothetical cloud storage renewal example created for this library; no real business, product or interface is depicted."},{"id":"pressured-upselling-scenario-2","title":"Repeated upgrade framing around room-only booking","context":"Accommodation checkout","journeyStage":"Checkout","summary":"A fictional booking flow places three sequential upgrade panels before room-only continuation and describes the basic booking as “missing the complete trip”.","problematic":{"label":"Complete your trip","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Complete your trip"},{"id":"problematic-2-body","type":"text","text":"Three separate panels frame room-only booking as an incomplete choice.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Amount affected","amount":"€95","detail":"Add extras package €95"},{"id":"problematic-4-button","type":"button","text":"Add extras package €95","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Continue room-only","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Repeated upgrade framing around room-only booking”, this element shows how pressured upselling can shape the decision."}]},"neutral":{"label":"Choose optional extras once","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose optional extras once"},{"id":"neutral-2-body","type":"text","text":"Room-only remains visible and each add-on can be reviewed without loss framing.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Continue room-only","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Add extras package €95","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Continue room-only” is activated.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Repeated upgrade framing around room-only booking”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the checkout decision. The problematic state shows: “Three separate panels frame room-only booking as an incomplete choice.” Its influence should be tested by comparing the consequence and usability of “Add extras package €95” with “Continue room-only”. Repeated loss framing may pressure a traveller to add services they did not seek.","fairDesignPrinciple":"Present room-only continuation beside optional extras, describe each product factually and avoid repeating a declined offer.","reviewPrompts":["Do “Add extras package €95” and “Continue room-only” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The higher-value option is preselected, materially more prominent or easier”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “ordinary plan hierarchy with comparable presentation”?"],"sourceIds":["gray-ontology-dark-patterns-2024","mathur-dark-patterns-at-scale-2019"],"altText":"Side-by-side accommodation checkout interface showing “Complete your trip” and the clearer alternative “Choose optional extras once”.","provenance":"Original hypothetical accommodation checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Present price and commitment alternatives comparably and avoid preselecting or obscuring the more expensive outcome.","whyProblematic":"A more expensive or profitable option is made the practical focal choice through preselection, visual prominence or obscured lower-cost alternatives. Repeated prompts, unsupported risk framing or decoy value claims make keeping the existing or basic option feel unsafe, wasteful or incomplete. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A lower-cost or less committed alternative exists.","The higher-value option is preselected, materially more prominent or easier.","The difference is not justified solely by the user's stated goal.","Exclude or qualify the label where transparent recommendation based on declared needs with equal access to alternatives.","Exclude or qualify the label where ordinary plan hierarchy with comparable presentation."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Upgrade for €29/month” and “Keep current €12 plan” receive comparable prominence and explain their consequences before activation?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “A lower-cost or less committed alternative exists”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Transparent recommendation based on declared needs with equal access to alternatives”?","Do “Add extras package €95” and “Continue room-only” receive comparable prominence and explain their consequences before activation?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The higher-value option is preselected, materially more prominent or easier”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “ordinary plan hierarchy with comparable presentation”?","Which complete journey evidence supports or contradicts the pressured upselling classification?"],"evidence":["Versioned captures of the Subscription and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed pressured upselling mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["gray-ontology-dark-patterns-2024","mathur-dark-patterns-at-scale-2019","eu-ucpd-2005-29"],"altText":"Side-by-side cloud storage renewal interface showing “Protect every file now” and the clearer alternative “Compare storage plans”.","provenance":"Original hypothetical cloud storage renewal example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Privacy maze: definition, examples and fairer design","slug":"privacy-maze","preferredName":"Privacy maze","directAnswer":"The label “Privacy maze” describes this recurring design mechanism: privacy controls are fragmented, inconsistently labelled or layered so that limiting collection or use is unnecessarily difficult. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"Privacy controls are fragmented, inconsistently labelled or layered so that limiting collection or use is unnecessarily difficult. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["privacy settings maze","privacy zuckering by obstruction"],"category":"Obstruction","family":"Obstruction","journeyStages":["Account Management"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Privacy settings","scenario":"A fictional service places audience ads, partner sharing and measurement controls under three differently named menus with no summary of the final state.","harm":"A person may fail to restrict optional uses because the controls are fragmented and inconsistently described."},{"type":"Illustrative example","context":"Connected-device account","scenario":"A fictional account lets users disable activity sharing on the web, but opening the mobile app silently restores the setting under a different label.","harm":"The user cannot maintain a reliable privacy preference across interfaces."}],"howItWorks":"Privacy controls are fragmented, inconsistently labelled or layered so that limiting collection or use is unnecessarily difficult. Related controls are distributed across inconsistent labels, menus or channels, preventing the user from seeing and maintaining one coherent privacy state.","warningSigns":["A meaningful privacy-restrictive outcome exists in principle.","The route contains unnecessary branching, repeated settings or inconsistent terminology.","The less-private route is materially easier or the maze is likely to cause abandonment."],"harms":["A person may fail to restrict optional uses because the controls are fragmented and inconsistently described.","The user cannot maintain a reliable privacy preference across interfaces."],"legitimateUses":["A similar design should not be classified this way where granular controls with a clear overview and global options.","A similar design should not be classified this way where complexity strictly required by genuinely distinct processing purposes.","A similar design should not be classified this way where information-only privacy policy."],"problematicUi":{"label":"Manage experience controls","copy":"Manage experience controls Related advertising choices are scattered across “Experience”, “Partners” and “Insights”. Open another menu Unconfirmed state: Open another menu","annotations":["In “Advertising opt-out split across unrelated menus”, this element shows how privacy maze can shape the decision."]},"improvedUi":{"label":"Optional data uses","copy":"Optional data uses All related purposes and current states are visible in one navigable overview. Turn off optional uses Saved state: Turn off optional uses Persisted account state The saved state behind “Turn off optional uses” remains consistent after refresh and across supported channels.","annotations":["In “Advertising opt-out split across unrelated menus”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"privacy-maze-scenario-1","title":"Advertising opt-out split across unrelated menus","context":"Privacy settings","journeyStage":"Account Management","summary":"A fictional service places audience ads, partner sharing and measurement controls under three differently named menus with no summary of the final state.","problematic":{"label":"Manage experience controls","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"Manage experience controls"},{"id":"problematic-2-body","type":"text","text":"Related advertising choices are scattered across “Experience”, “Partners” and “Insights”.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Open another menu","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Open another menu","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Advertising opt-out split across unrelated menus”, this element shows how privacy maze can shape the decision."}]},"neutral":{"label":"Optional data uses","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Optional data uses"},{"id":"neutral-2-body","type":"text","text":"All related purposes and current states are visible in one navigable overview.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Turn off optional uses","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Turn off optional uses","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Turn off optional uses” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Advertising opt-out split across unrelated menus”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this privacy settings example, the obstacle is: “Related advertising choices are scattered across “Experience”, “Partners” and “Insights”.” Evidence should show whether the alternative remains usable and whether “Turn off optional uses” reaches the represented state. A person may fail to restrict optional uses because the controls are fragmented and inconsistently described.","fairDesignPrinciple":"Provide a coherent overview, consistent purpose names and a clear summary of what each choice changes.","reviewPrompts":["How many steps, waits and channel changes separate “Open another menu” from the completed privacy settings outcome?","Test the control across refresh, device and account states; is “A meaningful privacy-restrictive outcome exists in principle” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “Granular controls with a clear overview and global options” is accounted for?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side privacy settings interface showing “Manage experience controls” and the clearer alternative “Optional data uses”.","provenance":"Original hypothetical privacy settings example created for this library; no real business, product or interface is depicted."},{"id":"privacy-maze-scenario-2","title":"Privacy choice silently re-enables elsewhere","context":"Connected-device account","journeyStage":"Account Management","summary":"A fictional account lets users disable activity sharing on the web, but opening the mobile app silently restores the setting under a different label.","problematic":{"label":"Personalised activity · Off","layout":"account-panel","elements":[{"id":"problematic-1-heading","type":"heading","text":"Personalised activity · Off"},{"id":"problematic-2-body","type":"text","text":"The mobile app later restores the same sharing under “Smart recommendations”.","tone":"warning"},{"id":"problematic-3-link","type":"link","text":"Setting may change","emphasis":"subtle"},{"id":"problematic-4-badge","type":"badge","text":"Unconfirmed state: Setting may change","tone":"warning"}],"annotations":[{"targetId":"problematic-4-badge","text":"In “Privacy choice silently re-enables elsewhere”, this element shows how privacy maze can shape the decision."}]},"neutral":{"label":"Activity sharing · Off everywhere","layout":"account-panel","elements":[{"id":"neutral-1-heading","type":"heading","text":"Activity sharing · Off everywhere"},{"id":"neutral-2-body","type":"text","text":"Web and app show the same persisted state and audit date.","tone":"default"},{"id":"neutral-3-link","type":"link","text":"Keep off across devices","emphasis":"default"},{"id":"neutral-4-badge","type":"badge","text":"Saved state: Keep off across devices","tone":"positive"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Persisted account state","content":"The saved state behind “Keep off across devices” remains consistent after refresh and across supported channels.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Privacy choice silently re-enables elsewhere”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The route adds avoidable effort between the user’s stated intention and completion. In this connected-device account example, the obstacle is: “The mobile app later restores the same sharing under “Smart recommendations”.” Evidence should show whether the alternative remains usable and whether “Keep off across devices” reaches the represented state. The user cannot maintain a reliable privacy preference across interfaces.","fairDesignPrinciple":"Use one persistent state across channels, announce conflicts and require a deliberate choice before changing it.","reviewPrompts":["How many steps, waits and channel changes separate “Setting may change” from the completed connected-device account outcome?","Test the control across refresh, device and account states; is “The route contains unnecessary branching, repeated settings or inconsistent terminology” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “complexity strictly required by genuinely distinct processing purposes” is accounted for?"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022"],"altText":"Side-by-side connected-device account interface showing “Personalised activity · Off” and the clearer alternative “Activity sharing · Off everywhere”.","provenance":"Original hypothetical connected-device account example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Provide a coherent privacy-control overview, consistent labels and direct controls for common restrictive choices.","whyProblematic":"Privacy controls are fragmented, inconsistently labelled or layered so that limiting collection or use is unnecessarily difficult. Related controls are distributed across inconsistent labels, menus or channels, preventing the user from seeing and maintaining one coherent privacy state. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A meaningful privacy-restrictive outcome exists in principle.","The route contains unnecessary branching, repeated settings or inconsistent terminology.","The less-private route is materially easier or the maze is likely to cause abandonment.","Exclude or qualify the label where granular controls with a clear overview and global options.","Exclude or qualify the label where complexity strictly required by genuinely distinct processing purposes.","Exclude or qualify the label where information-only privacy policy."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["How many steps, waits and channel changes separate “Open another menu” from the completed privacy settings outcome?","Test the control across refresh, device and account states; is “A meaningful privacy-restrictive outcome exists in principle” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “Granular controls with a clear overview and global options” is accounted for?","How many steps, waits and channel changes separate “Setting may change” from the completed connected-device account outcome?","Test the control across refresh, device and account states; is “The route contains unnecessary branching, repeated settings or inconsistent terminology” still observable after persistence is considered?","Measure the same task through the clearest available route: does the effort difference persist once “complexity strictly required by genuinely distinct processing purposes” is accounted for?","Which complete journey evidence supports or contradicts the privacy maze classification?"],"evidence":["Versioned captures of the Account Management states before, during and after the relevant decision","Configuration, content and event records supporting the observed privacy maze mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence"],"related":["obstructed-alternative","cancellation-friction","account-deletion-obstruction"],"sourceIds":["gray-ontology-dark-patterns-2024","eu-behavioural-study-digital-environment-2022","eu-ucpd-2005-29"],"altText":"Side-by-side privacy settings interface showing “Manage experience controls” and the clearer alternative “Optional data uses”.","provenance":"Original hypothetical privacy settings example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Repeated prompting: definition, examples and fairer design","slug":"repeated-prompting","preferredName":"Repeated prompting","directAnswer":"The label “Repeated prompting” describes this recurring design mechanism: a business-favoured request repeatedly interrupts the user after decline, dismissal or non-response without a durable way to stop it. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A business-favoured request repeatedly interrupts the user after decline, dismissal or non-response without a durable way to stop it. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["nagging","continuous prompting","non-persistent dismissal"],"category":"Nagging","family":"Nagging","journeyStages":["Signup","Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Mobile app onboarding","scenario":"A fictional app shows the same full-screen notification request after the user declines, then repeats it on each of the next four screens.","harm":"Repeated interruption can wear down a refusal and prevent ordinary use of the service."},{"type":"Illustrative example","context":"Travel checkout","scenario":"A fictional booking journey restores a previously declined insurance offer at passenger details, payment and final confirmation.","harm":"A traveller may accept simply to stop repeated interruptions or may believe the earlier refusal was ineffective."}],"howItWorks":"A business-favoured request repeatedly interrupts the user after decline, dismissal or non-response without a durable way to stop it. Refusal is stored only briefly while acceptance would be durable, allowing repeated interruption costs to wear down a choice already made.","warningSigns":["The prompt purpose is materially the same across occurrences.","The user previously declined, dismissed or ignored it.","Recurrence exceeds a configured reasonable observation rule and creates plausible pressure or time cost."],"harms":["Repeated interruption can wear down a refusal and prevent ordinary use of the service.","A traveller may accept simply to stop repeated interruptions or may believe the earlier refusal was ineffective."],"legitimateUses":["A similar design should not be classified this way where required safety or legal notice.","A similar design should not be classified this way where materially changed request triggered by a new user action.","A similar design should not be classified this way where one reminder after a long and relevant interval."],"problematicUi":{"label":"Turn on notifications","copy":"Turn on notifications The request returns immediately after every decline. Not now Continue without notifications","annotations":["In “Notification request returns on every screen”, this element shows how repeated prompting can shape the decision."]},"improvedUi":{"label":"Notifications remain off","copy":"Notifications remain off The app records the refusal and explains where the setting can be changed later. Continue without notifications Not now What happens next Activating “Continue without notifications” produces the outcome stated on the control.","annotations":["In “Notification request returns on every screen”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"repeated-prompting-scenario-1","title":"Notification request returns on every screen","context":"Mobile app onboarding","journeyStage":"Signup","summary":"A fictional app shows the same full-screen notification request after the user declines, then repeats it on each of the next four screens.","problematic":{"label":"Turn on notifications","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"Turn on notifications"},{"id":"problematic-2-body","type":"text","text":"The request returns immediately after every decline.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Not now","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"Continue without notifications","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Notification request returns on every screen”, this element shows how repeated prompting can shape the decision."}]},"neutral":{"label":"Notifications remain off","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Notifications remain off"},{"id":"neutral-2-body","type":"text","text":"The app records the refusal and explains where the setting can be changed later.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Continue without notifications","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Not now","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “Continue without notifications” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Notification request returns on every screen”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The user’s earlier refusal loses effect while the request keeps interrupting the signup journey. The practical influence comes from recurrence, not from one isolated prompt: “The request returns immediately after every decline.” Repeated interruption can wear down a refusal and prevent ordinary use of the service.","fairDesignPrinciple":"Respect the decision for a meaningful period and keep any later change available in settings.","reviewPrompts":["Which event causes “Not now” to return after refusal, and how long does the product persist that refusal?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “The prompt purpose is materially the same across occurrences”?","After an explicit refusal, when may the prompt legitimately return, and how would that changed context remain distinct from “Required safety or legal notice”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side mobile app onboarding interface showing “Turn on notifications” and the clearer alternative “Notifications remain off”.","provenance":"Original hypothetical mobile app onboarding example created for this library; no real business, product or interface is depicted."},{"id":"repeated-prompting-scenario-2","title":"Declined add-on repeatedly reappears","context":"Travel checkout","journeyStage":"Checkout","summary":"A fictional booking journey restores a previously declined insurance offer at passenger details, payment and final confirmation.","problematic":{"label":"Add insurance before continuing","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Add insurance before continuing"},{"id":"problematic-2-body","type":"text","text":"The same rejected extra blocks three later checkout steps.","tone":"warning"},{"id":"problematic-3-price","type":"price","label":"Amount affected","amount":"€24","detail":"Add €24 insurance"},{"id":"problematic-4-button","type":"button","text":"Add €24 insurance","emphasis":"primary"},{"id":"problematic-5-link","type":"link","text":"Continue to payment","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-5-link","text":"In “Declined add-on repeatedly reappears”, this element shows how repeated prompting can shape the decision."}]},"neutral":{"label":"Insurance declined","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Insurance declined"},{"id":"neutral-2-body","type":"text","text":"The decision persists and checkout continues without another blocking prompt.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"Continue to payment","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Add €24 insurance","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Continue to payment” is activated.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Declined add-on repeatedly reappears”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The user’s earlier refusal loses effect while the request keeps interrupting the checkout journey. The practical influence comes from recurrence, not from one isolated prompt: “The same rejected extra blocks three later checkout steps.” A traveller may accept simply to stop repeated interruptions or may believe the earlier refusal was ineffective.","fairDesignPrinciple":"Persist the refusal throughout the transaction and provide one optional, non-blocking way to reconsider.","reviewPrompts":["Which event causes “Add €24 insurance” to return after refusal, and how long does the product persist that refusal?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The user previously declined, dismissed or ignored it”?","After an explicit refusal, when may the prompt legitimately return, and how would that changed context remain distinct from “materially changed request triggered by a new user action”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side travel checkout interface showing “Add insurance before continuing” and the clearer alternative “Insurance declined”.","provenance":"Original hypothetical travel checkout example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Respect decline and dismissal, provide a durable preference, and limit reminders to justified, transparent intervals.","whyProblematic":"A business-favoured request repeatedly interrupts the user after decline, dismissal or non-response without a durable way to stop it. Refusal is stored only briefly while acceptance would be durable, allowing repeated interruption costs to wear down a choice already made. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The prompt purpose is materially the same across occurrences.","The user previously declined, dismissed or ignored it.","Recurrence exceeds a configured reasonable observation rule and creates plausible pressure or time cost.","Exclude or qualify the label where required safety or legal notice.","Exclude or qualify the label where materially changed request triggered by a new user action.","Exclude or qualify the label where one reminder after a long and relevant interval."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which event causes “Not now” to return after refusal, and how long does the product persist that refusal?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “The prompt purpose is materially the same across occurrences”?","After an explicit refusal, when may the prompt legitimately return, and how would that changed context remain distinct from “Required safety or legal notice”?","Which event causes “Add €24 insurance” to return after refusal, and how long does the product persist that refusal?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “The user previously declined, dismissed or ignored it”?","After an explicit refusal, when may the prompt legitimately return, and how would that changed context remain distinct from “materially changed request triggered by a new user action”?","Which complete journey evidence supports or contradicts the repeated prompting classification?"],"evidence":["Versioned captures of the Signup and Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed repeated prompting mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["forced-registration","forced-action-and-data-disclosure","contact-harvesting-and-coerced-referrals"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side mobile app onboarding interface showing “Turn on notifications” and the clearer alternative “Notifications remain off”.","provenance":"Original hypothetical mobile app onboarding example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Sneak into basket: definition, examples and fairer design","slug":"sneak-into-basket","preferredName":"Sneak into basket","directAnswer":"The label “Sneak into basket” describes this recurring design mechanism: a paid or consequential item is added to a basket or transaction without a clear, deliberate and specific user choice. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A paid or consequential item is added to a basket or transaction without a clear, deliberate and specific user choice. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["automatic add-on","sneak into cart"],"category":"Sneaking","family":"Sneaking","journeyStages":["Checkout"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Grocery checkout","scenario":"A fictional grocery service inserts a €2 charity donation into the basket when the shopper chooses a delivery slot, without showing a selection control.","harm":"The shopper may pay an additional amount that was never deliberately added."},{"type":"Illustrative example","context":"Electronics basket","scenario":"A fictional store adds a cable bundle to a laptop order, lets the shopper remove it, then silently restores it when the delivery postcode changes.","harm":"A removed item can re-enter the transaction and create an unintended charge."}],"howItWorks":"A paid or consequential item is added to a basket or transaction without a clear, deliberate and specific user choice. An item or donation enters or re-enters the basket without a current add action, so the payable state changes independently of the shopper’s recorded choice.","warningSigns":["A line item or quantity appears after a transition.","No preceding deliberate action specifically selected that item or quantity.","The addition creates cost, commitment or another material consequence."],"harms":["The shopper may pay an additional amount that was never deliberately added.","A removed item can re-enter the transaction and create an unintended charge."],"legitimateUses":["A similar design should not be classified this way where tax or unavoidable charge represented separately.","A similar design should not be classified this way where user-selected bundle whose included items were clearly disclosed.","A similar design should not be classified this way where free non-consequential item."],"problematicUi":{"label":"Order total · €64","copy":"Order total · €64 A €2 donation appears after delivery selection without an add action. Donation included Add €2 donation","annotations":["In “Donation added without a deliberate choice”, this element shows how sneak into basket can shape the decision."]},"improvedUi":{"label":"Order total · €62","copy":"Order total · €62 Donation choices are optional, unselected and visible before the total changes. Amount affected €2 Add €2 donation Add €2 donation Donation included Payable total and selected items The summary shows the line items and total before “Add €2 donation” is activated.","annotations":["In “Donation added without a deliberate choice”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"sneak-into-basket-scenario-1","title":"Donation added without a deliberate choice","context":"Grocery checkout","journeyStage":"Checkout","summary":"A fictional grocery service inserts a €2 charity donation into the basket when the shopper chooses a delivery slot, without showing a selection control.","problematic":{"label":"Order total · €64","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Order total · €64"},{"id":"problematic-2-body","type":"text","text":"A €2 donation appears after delivery selection without an add action.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Donation included","tone":"warning"},{"id":"problematic-4-link","type":"link","text":"Add €2 donation","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Donation added without a deliberate choice”, this element shows how sneak into basket can shape the decision."}]},"neutral":{"label":"Order total · €62","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Order total · €62"},{"id":"neutral-2-body","type":"text","text":"Donation choices are optional, unselected and visible before the total changes.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€2","detail":"Add €2 donation"},{"id":"neutral-4-button","type":"button","text":"Add €2 donation","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Donation included","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Add €2 donation” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Donation added without a deliberate choice”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “A €2 donation appears after delivery selection without an add action.” Review the timing and affirmative selection needed before “Donation included” changes price, product or recurring liability. The shopper may pay an additional amount that was never deliberately added.","fairDesignPrinciple":"Leave donations out of the basket until the shopper selects a clearly priced option.","reviewPrompts":["Which affirmative action authorises “Donation included”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “A line item or quantity appears after a transition”?","Which specific affirmative event creates the final commercial state, and could “Tax or unavoidable charge represented separately” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side grocery checkout interface showing “Order total · €64” and the clearer alternative “Order total · €62”.","provenance":"Original hypothetical grocery checkout example created for this library; no real business, product or interface is depicted."},{"id":"sneak-into-basket-scenario-2","title":"Removed accessory returns after cart refresh","context":"Electronics basket","journeyStage":"Checkout","summary":"A fictional store adds a cable bundle to a laptop order, lets the shopper remove it, then silently restores it when the delivery postcode changes.","problematic":{"label":"Updated order · €829","layout":"checkout-summary","elements":[{"id":"problematic-1-heading","type":"heading","text":"Updated order · €829"},{"id":"problematic-2-body","type":"text","text":"The €30 cable bundle returns after a postcode edit.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Accessory restored","tone":"warning"},{"id":"problematic-4-link","type":"link","text":"Add cable bundle €30","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Removed accessory returns after cart refresh”, this element shows how sneak into basket can shape the decision."}]},"neutral":{"label":"Updated order · €799","layout":"checkout-summary","elements":[{"id":"neutral-1-heading","type":"heading","text":"Updated order · €799"},{"id":"neutral-2-body","type":"text","text":"The shopper’s removal persists through recalculation.","tone":"default"},{"id":"neutral-3-price","type":"price","label":"Amount affected","amount":"€30","detail":"Add cable bundle €30"},{"id":"neutral-4-button","type":"button","text":"Add cable bundle €30","emphasis":"secondary"},{"id":"neutral-5-link","type":"link","text":"Accessory restored","emphasis":"default"},{"id":"neutral-6-disclosure","type":"disclosure","summary":"Payable total and selected items","content":"The summary shows the line items and total before “Add cable bundle €30” is activated.","open":true}],"annotations":[{"targetId":"neutral-6-disclosure","text":"In “Removed accessory returns after cart refresh”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The final commercial state diverges from the choice represented earlier in the journey. The problematic state records: “The €30 cable bundle returns after a postcode edit.” Review the timing and affirmative selection needed before “Accessory restored” changes price, product or recurring liability. A removed item can re-enter the transaction and create an unintended charge.","fairDesignPrinciple":"Persist removal across all cart updates and require a new deliberate add action before restoring an accessory.","reviewPrompts":["Which affirmative action authorises “Accessory restored”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “No preceding deliberate action specifically selected that item or quantity”?","Which specific affirmative event creates the final commercial state, and could “user-selected bundle whose included items were clearly disclosed” explain the observed outcome instead?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side electronics basket interface showing “Updated order · €829” and the clearer alternative “Updated order · €799”.","provenance":"Original hypothetical electronics basket example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Add an item only after a deliberate selection, preserve removal through every recalculation and show the updated line item and total before commitment.","whyProblematic":"A paid or consequential item is added to a basket or transaction without a clear, deliberate and specific user choice. An item or donation enters or re-enters the basket without a current add action, so the payable state changes independently of the shopper’s recorded choice. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A line item or quantity appears after a transition.","No preceding deliberate action specifically selected that item or quantity.","The addition creates cost, commitment or another material consequence.","Exclude or qualify the label where tax or unavoidable charge represented separately.","Exclude or qualify the label where user-selected bundle whose included items were clearly disclosed.","Exclude or qualify the label where free non-consequential item."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which affirmative action authorises “Donation included”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “A line item or quantity appears after a transition”?","Which specific affirmative event creates the final commercial state, and could “Tax or unavoidable charge represented separately” explain the observed outcome instead?","Which affirmative action authorises “Accessory restored”, and where is the resulting price, product or recurring state shown before commitment?","Compare the basket before and after the action, including total and line items; does the mutation satisfy “No preceding deliberate action specifically selected that item or quantity”?","Which specific affirmative event creates the final commercial state, and could “user-selected bundle whose included items were clearly disclosed” explain the observed outcome instead?","Which complete journey evidence supports or contradicts the sneak into basket classification?"],"evidence":["Versioned captures of the Checkout states before, during and after the relevant decision","Configuration, content and event records supporting the observed sneak into basket mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Price-component, offer-version and calculation records linked to the captured screen"],"related":["drip-pricing-and-hidden-charges","hidden-subscription-or-forced-continuity","bait-and-switch"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side grocery checkout interface showing “Order total · €64” and the clearer alternative “Order total · €62”.","provenance":"Original hypothetical grocery checkout example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Testimonials or endorsements: definition, examples and fairer design","slug":"testimonials-or-endorsements","preferredName":"Testimonials or endorsements","directAnswer":"The label “Testimonials or endorsements” describes this recurring design mechanism: a named or attributed person's approval is used persuasively without sufficient authenticity, representativeness or relationship disclosure. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A named or attributed person's approval is used persuasively without sufficient authenticity, representativeness or relationship disclosure. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["customer testimonial","influencer endorsement","expert endorsement"],"category":"Social proof","family":"Social proof","journeyStages":["Pricing"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Social product landing page","scenario":"A fictional creator calls a skincare product a personal favourite and links to purchase without disclosing payment until the bottom of a collapsed caption.","harm":"Viewers may give the recommendation weight they would not give a clearly identified advertisement."},{"type":"Illustrative example","context":"Software comparison page","scenario":"A fictional software company publishes a five-star quote from its product manager under an “Independent experts recommend” heading.","harm":"Buyers may mistake an internal promotional statement for independent evaluation."}],"howItWorks":"A named or attributed person's approval is used persuasively without sufficient authenticity, representativeness or relationship disclosure. A recommendation gains apparent independence or expertise by withholding the speaker’s payment, employment or other material relationship.","warningSigns":["The interface attributes an evaluative statement or approval to a person or identifiable group.","The statement is connected to a purchase or other material choice.","Authenticity, material connection or representativeness is unsupported or contradicted by verified evidence."],"harms":["Viewers may give the recommendation weight they would not give a clearly identified advertisement.","Buyers may mistake an internal promotional statement for independent evaluation."],"legitimateUses":["A similar design should not be classified this way where unaffiliated verifiable statement accurately quoted in context.","A similar design should not be classified this way where aggregate rating without testimonial attribution.","A similar design should not be classified this way where clearly labelled fictional illustration."],"problematicUi":{"label":"My everyday favourite","copy":"My everyday favourite The creator’s payment is hidden below the promotional claim. Shop my pick Claim basis No supporting population, period, inventory or offer event is presented with this message.","annotations":["In “Paid creator recommendation lacks disclosure”, this element shows how testimonials or endorsements can shape the decision."]},"improvedUi":{"label":"Paid advertisement","copy":"Paid advertisement The material relationship appears before the recommendation and link. View advertised product Claim basis The relevant population, period, inventory or offer state is presented with the message. View the source and period for “View advertised product”","annotations":["In “Paid creator recommendation lacks disclosure”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"testimonials-or-endorsements-scenario-1","title":"Paid creator recommendation lacks disclosure","context":"Social product landing page","journeyStage":"Pricing","summary":"A fictional creator calls a skincare product a personal favourite and links to purchase without disclosing payment until the bottom of a collapsed caption.","problematic":{"label":"My everyday favourite","layout":"banner","elements":[{"id":"problematic-1-heading","type":"heading","text":"My everyday favourite"},{"id":"problematic-2-body","type":"text","text":"The creator’s payment is hidden below the promotional claim.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Shop my pick","tone":"warning"},{"id":"problematic-4-disclosure","type":"disclosure","summary":"Claim basis","content":"No supporting population, period, inventory or offer event is presented with this message.","open":false}],"annotations":[{"targetId":"problematic-4-disclosure","text":"In “Paid creator recommendation lacks disclosure”, this element shows how testimonials or endorsements can shape the decision."}]},"neutral":{"label":"Paid advertisement","layout":"banner","elements":[{"id":"neutral-1-heading","type":"heading","text":"Paid advertisement"},{"id":"neutral-2-body","type":"text","text":"The material relationship appears before the recommendation and link.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"View advertised product","tone":"positive"},{"id":"neutral-4-disclosure","type":"disclosure","summary":"Claim basis","content":"The relevant population, period, inventory or offer state is presented with the message.","open":true},{"id":"neutral-5-link","type":"link","text":"View the source and period for “View advertised product”","emphasis":"default"}],"annotations":[{"targetId":"neutral-5-link","text":"In “Paid creator recommendation lacks disclosure”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The interface asks the user to rely on other people’s behaviour or approval. The cue “Shop my pick” has persuasive meaning only if its population, period, metric and relationship match the represented claim. The panel instead says: “The creator’s payment is hidden below the promotional claim.” Viewers may give the recommendation weight they would not give a clearly identified advertisement.","fairDesignPrinciple":"Disclose the material relationship at first exposure and keep it visible near the endorsement and purchase route.","reviewPrompts":["Which source record substantiates “Shop my pick”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The interface attributes an evaluative statement or approval to a person or identifiable group”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “Unaffiliated verifiable statement accurately quoted in context”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side social product landing page interface showing “My everyday favourite” and the clearer alternative “Paid advertisement”.","provenance":"Original hypothetical social product landing page example created for this library; no real business, product or interface is depicted."},{"id":"testimonials-or-endorsements-scenario-2","title":"Employee review presented as independent expertise","context":"Software comparison page","journeyStage":"Pricing","summary":"A fictional software company publishes a five-star quote from its product manager under an “Independent experts recommend” heading.","problematic":{"label":"Independent expert verdict","layout":"pricing-card","elements":[{"id":"problematic-1-heading","type":"heading","text":"Independent expert verdict"},{"id":"problematic-2-body","type":"text","text":"The reviewer is an employee and the relationship is not disclosed.","tone":"warning"},{"id":"problematic-3-badge","type":"badge","text":"Five stars","tone":"warning"},{"id":"problematic-4-link","type":"link","text":"Read methodology","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Employee review presented as independent expertise”, this element shows how testimonials or endorsements can shape the decision."}]},"neutral":{"label":"Product-team perspective","layout":"pricing-card","elements":[{"id":"neutral-1-heading","type":"heading","text":"Product-team perspective"},{"id":"neutral-2-body","type":"text","text":"The speaker’s role and connection are visible beside the quote.","tone":"default"},{"id":"neutral-3-badge","type":"badge","text":"Read methodology","tone":"positive"},{"id":"neutral-4-link","type":"link","text":"Five stars","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Price, period and commitment","content":"The price and material terms associated with “Read methodology” remain beside this choice.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Employee review presented as independent expertise”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The interface asks the user to rely on other people’s behaviour or approval. The cue “Five stars” has persuasive meaning only if its population, period, metric and relationship match the represented claim. The panel instead says: “The reviewer is an employee and the relationship is not disclosed.” Buyers may mistake an internal promotional statement for independent evaluation.","fairDesignPrinciple":"Identify the speaker and relationship accurately and substantiate any expertise or independence claim.","reviewPrompts":["Which source record substantiates “Five stars”, including its population, period, metric and any commercial relationship?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The statement is connected to a purchase or other material choice”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “aggregate rating without testimonial attribution”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side software comparison page interface showing “Independent expert verdict” and the clearer alternative “Product-team perspective”.","provenance":"Original hypothetical software comparison page example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use authentic, supportable testimonials and clearly disclose material commercial connections and limitations.","whyProblematic":"A named or attributed person's approval is used persuasively without sufficient authenticity, representativeness or relationship disclosure. A recommendation gains apparent independence or expertise by withholding the speaker’s payment, employment or other material relationship. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["The interface attributes an evaluative statement or approval to a person or identifiable group.","The statement is connected to a purchase or other material choice.","Authenticity, material connection or representativeness is unsupported or contradicted by verified evidence.","Exclude or qualify the label where unaffiliated verifiable statement accurately quoted in context.","Exclude or qualify the label where aggregate rating without testimonial attribution.","Exclude or qualify the label where clearly labelled fictional illustration."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Which source record substantiates “Shop my pick”, including its population, period, metric and any commercial relationship?","Record the claim, timestamp, data source and post-claim state; which evidence supports “The interface attributes an evaluative statement or approval to a person or identifiable group”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “Unaffiliated verifiable statement accurately quoted in context”?","Which source record substantiates “Five stars”, including its population, period, metric and any commercial relationship?","Place the compared prices, billing periods and material terms on one evidence sheet; where does it support “The statement is connected to a purchase or other material choice”?","Can the claim be reproduced from a defined population and period, or does the evidence instead fit “aggregate rating without testimonial attribution”?","Which complete journey evidence supports or contradicts the testimonials or endorsements classification?"],"evidence":["Versioned captures of the Pricing states before, during and after the relevant decision","Configuration, content and event records supporting the observed testimonials or endorsements mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Timestamped operational data supporting every urgency, demand or social-proof message","Price-component, offer-version and calculation records linked to the captured screen"],"related":["activity-messages","popularity-claims"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side social product landing page interface showing “My everyday favourite” and the clearer alternative “Paid advertisement”.","provenance":"Original hypothetical social product landing page example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."},{"title":"Trick question: definition, examples and fairer design","slug":"trick-question","preferredName":"Trick question","directAnswer":"The label “Trick question” describes this recurring design mechanism: a question or control uses confusing, reversed or leading semantics so the user's likely interpretation may not match the resulting choice. It is a design and research taxonomy, not a standalone legal conclusion. Depending on the complete journey and likely effect, current EU consumer or sector rules may require separate assessment. No published Digital Fairness Act proposal currently creates a pattern-specific prohibition or duty under this label.","definition":"A question or control uses confusing, reversed or leading semantics so the user's likely interpretation may not match the resulting choice. The label describes a recurring design mechanism; whether a particular implementation is harmful or unlawful depends on the complete journey, audience, evidence and rules within scope.","synonyms":["trick wording","double negative"],"category":"Interface interference","family":"Interface interference","journeyStages":["Signup","Cancellation"],"jurisdiction":"European Union","status":"Editorial analysis","legalBasis":[{"provision":"Dark-pattern research taxonomy","sourceIds":["oecd-dark-commercial-patterns-2022"],"classification":"Editorial analysis","explanation":"The cited research sources support identification and comparison of this recurring interface mechanism. They do not determine that a particular interface is unlawful."},{"provision":"UCPD Articles 5 to 9, where applicable","sourceIds":["eu-ucpd-2005-29"],"classification":"Possible risk indicator","explanation":"Depending on the trader, audience, overall presentation, material information and likely transactional effect, the facts may require a separate assessment under the applicable UCPD provisions."}],"examples":[{"type":"Illustrative example","context":"Account signup","scenario":"A fictional signup asks users to tick “Do not untick if you do not want to miss offers”, making the resulting marketing choice hard to predict.","harm":"A user may subscribe to promotions while believing they refused them."},{"type":"Illustrative example","context":"Membership cancellation","scenario":"A fictional cancellation dialog asks “Are you sure you don’t want us not to keep your plan active?” before displaying yes and no buttons.","harm":"The subscriber may preserve the plan accidentally because neither answer has a predictable consequence."}],"howItWorks":"A question or control uses confusing, reversed or leading semantics so the user's likely interpretation may not match the resulting choice. Negation, reversal or answer-label ambiguity breaks the link between the user’s response and the state that response will create.","warningSigns":["A response control has a predictable semantic interpretation.","Negation, label structure or inconsistent conventions make that interpretation materially ambiguous.","The ambiguity favours a business outcome or creates plausible detriment."],"harms":["A user may subscribe to promotions while believing they refused them.","The subscriber may preserve the plan accidentally because neither answer has a predictable consequence."],"legitimateUses":["A similar design should not be classified this way where unavoidable technical distinction clearly explained.","A similar design should not be classified this way where minor stylistic awkwardness with unambiguous outcome."],"problematicUi":{"label":"Communication preferences","copy":"Communication preferences The checkbox uses two negatives and an unclear default. Do not untick to opt out Continue with selected choices","annotations":["In “Double negative controls marketing”, this element shows how trick question can shape the decision."]},"improvedUi":{"label":"Email offers","copy":"Email offers The optional choice states exactly what checking it does. Send me optional email offers Save these choices Purpose and refusal effect The form explains why “Send me optional email offers” is requested and what happens if it is not used.","annotations":["In “Double negative controls marketing”, this element keeps the clearer alternative visible at the same decision point."]},"uiComparisons":[{"id":"trick-question-scenario-1","title":"Double negative controls marketing","context":"Account signup","journeyStage":"Signup","summary":"A fictional signup asks users to tick “Do not untick if you do not want to miss offers”, making the resulting marketing choice hard to predict.","problematic":{"label":"Communication preferences","layout":"form","elements":[{"id":"problematic-1-heading","type":"heading","text":"Communication preferences"},{"id":"problematic-2-body","type":"text","text":"The checkbox uses two negatives and an unclear default.","tone":"warning"},{"id":"problematic-3-checkbox","type":"checkbox","label":"Do not untick to opt out","checked":true},{"id":"problematic-4-button","type":"button","text":"Continue with selected choices","emphasis":"primary"}],"annotations":[{"targetId":"problematic-4-button","text":"In “Double negative controls marketing”, this element shows how trick question can shape the decision."}]},"neutral":{"label":"Email offers","layout":"form","elements":[{"id":"neutral-1-heading","type":"heading","text":"Email offers"},{"id":"neutral-2-body","type":"text","text":"The optional choice states exactly what checking it does.","tone":"default"},{"id":"neutral-3-checkbox","type":"checkbox","label":"Send me optional email offers","checked":false},{"id":"neutral-4-button","type":"button","text":"Save these choices","emphasis":"secondary"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"Purpose and refusal effect","content":"The form explains why “Send me optional email offers” is requested and what happens if it is not used.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Double negative controls marketing”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the signup decision. The problematic state shows: “The checkbox uses two negatives and an unclear default.” Its influence should be tested by comparing the consequence and usability of “Do not untick to opt out” with “Send me optional email offers”. A user may subscribe to promotions while believing they refused them.","fairDesignPrinciple":"Use one positive proposition, an unticked control and a direct explanation of the resulting state.","reviewPrompts":["Do “Do not untick to opt out” and “Send me optional email offers” receive comparable prominence and explain their consequences before activation?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “A response control has a predictable semantic interpretation”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Unavoidable technical distinction clearly explained”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side account signup interface showing “Communication preferences” and the clearer alternative “Email offers”.","provenance":"Original hypothetical account signup example created for this library; no real business, product or interface is depicted."},{"id":"trick-question-scenario-2","title":"Reversed wording in cancellation survey","context":"Membership cancellation","journeyStage":"Cancellation","summary":"A fictional cancellation dialog asks “Are you sure you don’t want us not to keep your plan active?” before displaying yes and no buttons.","problematic":{"label":"One last question","layout":"dialog","elements":[{"id":"problematic-1-heading","type":"heading","text":"One last question"},{"id":"problematic-2-body","type":"text","text":"A double negative separates the button labels from their actual outcomes.","tone":"warning"},{"id":"problematic-3-button","type":"button","text":"Yes / No","emphasis":"primary"},{"id":"problematic-4-link","type":"link","text":"End plan on 30 September","emphasis":"subtle"}],"annotations":[{"targetId":"problematic-4-link","text":"In “Reversed wording in cancellation survey”, this element shows how trick question can shape the decision."}]},"neutral":{"label":"Choose the account outcome","layout":"dialog","elements":[{"id":"neutral-1-heading","type":"heading","text":"Choose the account outcome"},{"id":"neutral-2-body","type":"text","text":"Each action names the result and effective date.","tone":"default"},{"id":"neutral-3-button","type":"button","text":"End plan on 30 September","emphasis":"secondary"},{"id":"neutral-4-link","type":"link","text":"Yes / No","emphasis":"default"},{"id":"neutral-5-disclosure","type":"disclosure","summary":"What happens next","content":"Activating “End plan on 30 September” produces the outcome stated on the control.","open":true}],"annotations":[{"targetId":"neutral-5-disclosure","text":"In “Reversed wording in cancellation survey”, this element keeps the clearer alternative visible at the same decision point."}]},"whyItMatters":"The presentation changes what the user can notice or predict at the cancellation decision. The problematic state shows: “A double negative separates the button labels from their actual outcomes.” Its influence should be tested by comparing the consequence and usability of “Yes / No” with “End plan on 30 September”. The subscriber may preserve the plan accidentally because neither answer has a predictable consequence.","fairDesignPrinciple":"Replace yes/no answers with explicit actions that state whether the plan ends or continues.","reviewPrompts":["Do “Yes / No” and “End plan on 30 September” receive comparable prominence and explain their consequences before activation?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “Negation, label structure or inconsistent conventions make that interpretation materially ambiguous”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “minor stylistic awkwardness with unambiguous outcome”?"],"sourceIds":["oecd-dark-commercial-patterns-2022"],"altText":"Side-by-side membership cancellation interface showing “One last question” and the clearer alternative “Choose the account outcome”.","provenance":"Original hypothetical membership cancellation example created for this library; no real business, product or interface is depicted."}],"fairAlternative":"Use explicit action labels that name the resulting state, remove double negatives and verify that each response produces the consequence a user can reasonably predict.","whyProblematic":"A question or control uses confusing, reversed or leading semantics so the user's likely interpretation may not match the resulting choice. Negation, reversal or answer-label ambiguity breaks the link between the user’s response and the state that response will create. Risk increases where the mechanism changes a material consumer choice, hides a consequence or makes a genuine alternative harder to use. The taxonomy label remains a review prompt and does not establish an infringement.","contextFactors":["A response control has a predictable semantic interpretation.","Negation, label structure or inconsistent conventions make that interpretation materially ambiguous.","The ambiguity favours a business outcome or creates plausible detriment.","Exclude or qualify the label where unavoidable technical distinction clearly explained.","Exclude or qualify the label where minor stylistic awkwardness with unambiguous outcome."],"affectedTeams":["Product","UX","Legal","Engineering","Content design"],"reviewQuestions":["Do “Do not untick to opt out” and “Send me optional email offers” receive comparable prominence and explain their consequences before activation?","Which fields or permissions are required, what happens on refusal, and does the resulting state support this criterion: “A response control has a predictable semantic interpretation”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “Unavoidable technical distinction clearly explained”?","Do “Yes / No” and “End plan on 30 September” receive comparable prominence and explain their consequences before activation?","Can the dialog be dismissed, what action does each control trigger, and what later state confirms or contradicts “Negation, label structure or inconsistent conventions make that interpretation materially ambiguous”?","What neutral rendering or comprehension result would falsify the classification, particularly in light of “minor stylistic awkwardness with unambiguous outcome”?","Which complete journey evidence supports or contradicts the trick question classification?"],"evidence":["Versioned captures of the Signup and Cancellation states before, during and after the relevant decision","Configuration, content and event records supporting the observed trick question mechanism","Responsive, keyboard and assistive-technology review of every material option and consequence","Control defaults, validation rules and consent or selection state changes"],"related":["hidden-information","false-hierarchy","preselection-and-defaults"],"sourceIds":["oecd-dark-commercial-patterns-2022","eu-ucpd-2005-29"],"altText":"Side-by-side account signup interface showing “Communication preferences” and the clearer alternative “Email offers”.","provenance":"Original hypothetical account signup example created for this library; no real business, product or interface is depicted.","author":"Flowlane","datePublished":"2026-08-10","dateModified":"2026-09-14","lastReviewed":"2026-09-14","changeNote":"Source comparison recorded and the current status restated."}]}