App Privacy stopped at "now click Get Started yourself" and every page asked the owner to click Next. The owner should not click what storebound can safely do. - Every button of every console form is classified (navigation, draft-save, final-submit) in FORM_BUTTONS (cli/lib/console-forms.ts), citing Apple's and Google's help pages. A scoped flow gate (flowAllowed) lets navigation through; the generic click gate stays absolute for field clicks. - App Privacy: Get Started, Edit next to Data Types (never the Privacy Policy Edit), each data type / "Set Up <type>", Next, and the Save inside the questionnaire dialogs (a draft: Apple publishes only after Publish, per "Manage app privacy"). Each type's dialog may be one page or purposes > Next > linked > Next > tracking > Save. It ends with "review the summary, then press Publish yourself". Publish is never clicked. - Play content rating and target audience: Next by itself. Save draft, Submit, the final Save, Create and Create app stay the owner's. - An uncertain answer stops the walk on its page (outlined, "answer needed on ...") until the owner has set it; then it goes on. Fixture apple-app-privacy-flow.html (first time, ?existing=1, decoys); tests/console-flow.test.ts with the guardrail that no log line asks the owner to click a navigation control.
17 lines
1.4 KiB
HTML
17 lines
1.4 KiB
HTML
<!doctype html>
|
|
<!-- MODELED, not recorded: a sanitized stand-in for Play Console > Policy > App content > Target audience and content
|
|
(and the Ads declaration), written from Google's public help page "Target audience and content" (target age
|
|
groups, appeal to children, ads; Next / Save). -->
|
|
<html lang="en"><head><meta charset="utf-8"><title>Target audience and content - Play Console</title><script src="_common.js"></script></head>
|
|
<body>
|
|
<h1>Target audience and content</h1>
|
|
<section data-step><fieldset><legend>Target age</legend>
|
|
<label><input type="checkbox"> Ages 5 and under</label><label><input type="checkbox"> Ages 6-8</label><label><input type="checkbox"> Ages 9-12</label>
|
|
<label><input type="checkbox"> Ages 13-15</label><label><input type="checkbox"> Ages 16-17</label><label><input type="checkbox"> Ages 18 and over</label>
|
|
</fieldset><button type="button" data-next>Next</button></section>
|
|
<section data-step hidden><div role="radiogroup" aria-label="Could your app unintentionally appeal to children?">
|
|
<label><input type="radio" name="a"> Yes</label><label><input type="radio" name="a"> No</label></div><button type="button" data-next>Next</button></section>
|
|
<section data-step hidden><h2>Ads</h2>
|
|
<label><input type="radio" name="ads"> Yes, my app contains ads</label><label><input type="radio" name="ads"> No, my app does not contain ads</label>
|
|
<button type="button">Save</button></section>
|
|
</body></html>
|