# First switches and single messages: for people beginning to communicate, # and for first switch use. See tools/pagesets/DESIGN-emergent.md. # # The person's pages have no navigation cells: on a one-cell page any press # (a touch anywhere, any switch) says the message, and a partner moves # between pages with the app's own Back and Home. The index pages are for # the partner. # # New behaviour these pages need (designed in DESIGN-emergent.md, not yet # in the app; a client without it still speaks the cell's first message): # seq ext_aurasense_sequence: each press says the next line # effect ext_aurasense_effect: a short animation with the words # speak_only (board): words are said at once and never build a message set: name: First switches and messages description: >- Pages for first communication and first switch use: one big message, messages said one press at a time (a greeting, a joke, a song, the day's news), press-for-fun pages, two and four choices, and pages that teach scanning step by step. version: 2026-10-05 license: type: CC-BY-SA-4.0 copyright_notice_url: https://creativecommons.org/licenses/by-sa/4.0/ author_name: AuraSense Tech Corporation and the open-standards AAC contributors source_url: https://aac.aurasense.ai/ symbols: [mulberry, openmoji] root: index palette: nav: "#CFD8DC" c1: "#FFD600" c2: "#00B0FF" c3: "#FF9100" c4: "#00E676" c5: "#E040FB" c6: "#FF5252" cells: back: {label: Back, go: "@back", symbol: "nav:back", color: nav} boards: index: name: First switches description: >- Pages for the person to use, chosen by a partner. On the person's own pages any press says the message; use the app's Back and Home to move between pages. grid: [2, 3] rows: - [{label: "One message", go: one, color: c1}, {label: "Messages in turn", go: turns, color: c2}, {label: "Press for fun", go: fun, color: c3}] - [{label: "Make a choice", go: choices, color: c4}, {label: "Learn to scan", go: scan, color: c5}, ~] # ─── One message: a single big cell (any press says it) ────────────────── one: name: One message grid: [3, 4] rows: - [$back, {label: "Hi!", go: one-hi, color: c1}, {label: "More, please!", go: one-more, color: c1}, {label: "Look at me!", go: one-look, color: c1}] - [{label: "My turn!", go: one-turn, color: c1}, {label: "All done!", go: one-done, color: c1}, {label: "Help!", go: one-help, color: c1}, {label: "I want that!", go: one-want, color: c1}] - [{label: "Let's go!", go: one-go, color: c1}, {label: "My own message", go: one-mine, color: c1}, ~, ~] one-hi: {name: "Hi!", grid: [1, 1], speak_only: true, rows: [[{say: "Hi!", symbol: "hi", color: c1}]]} one-more: {name: "More, please!", grid: [1, 1], speak_only: true, rows: [[{say: "More, please!", symbol: "more", color: c1}]]} one-look: {name: "Look at me!", grid: [1, 1], speak_only: true, rows: [[{say: "Look at me!", symbol: "look", color: c1}]]} one-turn: {name: "My turn!", grid: [1, 1], speak_only: true, rows: [[{say: "My turn!", color: c1}]]} one-done: {name: "All done!", grid: [1, 1], speak_only: true, rows: [[{say: "All done!", symbol: "all done", color: c1}]]} one-help: {name: "Help!", grid: [1, 1], speak_only: true, rows: [[{say: "Help!", symbol: "help", color: c1}]]} one-want: {name: "I want that!", grid: [1, 1], speak_only: true, rows: [[{say: "I want that!", symbol: "want", color: c1}]]} one-go: {name: "Let's go!", grid: [1, 1], speak_only: true, rows: [[{say: "Let's go!", symbol: "go", color: c1}]]} one-mine: name: My own message grid: [1, 1] speak_only: true rows: [[{label: "My own message", say: "…", color: c1, fill: {words: true, recording: true, hint: "Type or record today's message"}}]] # ─── Messages in turn: each press says the next line ───────────────────── turns: name: Messages in turn description: Each press says the next line. After the last line, the next press starts again. grid: [3, 3] rows: - [$back, {label: "Good morning", go: seq-morning, color: c2}, {label: "Tell a riddle", go: seq-riddle, color: c2}] - [{label: "Action song", go: seq-song, color: c2}, {label: "My news", go: seq-news, color: c2}, {label: "Reading together", go: seq-reading, color: c2}] - [{label: "Playing a game", go: seq-game, color: c2}, {label: "Goodbye", go: seq-goodbye, color: c2}, ~] seq-morning: name: Good morning grid: [1, 1] speak_only: true rows: [[{label: "Good morning", symbol: "morning", color: c2, seq: {lines: ["Good morning!", "How is everyone today?", "Today is a good day.", "Let's get started!"], reset_after_minutes: 60}}]] seq-riddle: name: Tell a riddle grid: [1, 1] speak_only: true rows: [[{label: "Tell a riddle", symbol: "funny", color: c2, seq: {lines: ["I have a riddle for you.", "What has four legs but can't walk?", "A table!", "Ha ha! Got you!"], reset_after_minutes: 60}, note: "A riddle whose answer is the same in every language: translate it so the answer still works (an object with legs that cannot walk)."}]] seq-song: name: Action song grid: [1, 1] speak_only: true rows: [[{label: "Action song", symbol: "sing", color: c2, seq: {lines: ["Clap your hands!", "Stamp your feet!", "Turn around!", "Jump up high!", "Now sit down!"], reset_after_minutes: 60}}]] seq-news: name: My news description: Change these lines each day to tell the day's news, or record them in a familiar voice. grid: [1, 1] speak_only: true rows: [[{label: "My news", color: c2, fill: {words: true, recording: true, hint: "Change each line to today's news"}, seq: {lines: ["Guess what?", "I have news!", "I went somewhere.", "It was fun!", "Ask me about it!"], reset_after_minutes: 240}}]] seq-reading: name: Reading together grid: [1, 1] speak_only: true rows: [[{label: "Reading together", symbol: "book", color: c2, seq: {lines: ["Let's read!", "Turn the page!", "Wow!", "What happens next?", "The end!"], reset_after_minutes: 60}}]] seq-game: name: Playing a game grid: [1, 1] speak_only: true rows: [[{label: "Playing a game", symbol: "game", color: c2, seq: {lines: ["Ready?", "My turn!", "Your turn!", "Yay!", "Again!"], reset_after_minutes: 60}}]] seq-goodbye: name: Goodbye grid: [1, 1] speak_only: true rows: [[{label: "Goodbye", color: c2, seq: {lines: ["It's time to go.", "Thank you for today!", "See you tomorrow!", "Bye-bye!"], reset_after_minutes: 60}}]] # ─── Press for fun: cause and effect ───────────────────────────────────── fun: name: Press for fun description: Any press makes something happen. There is no wrong press. grid: [2, 2] rows: - [$back, {label: "Fun words", go: fun-words, color: c3}] - [{label: "Animal sounds", go: fun-animals, color: c3}, {label: "Party", go: fun-party, color: c3}] fun-words: name: Fun words grid: [1, 1] speak_only: true rows: [[{label: "Fun words", color: c3, effect: sparkle, seq: {lines: ["Wow!", "Whee!", "Uh-oh!", "Yay!", "Boom!", "Ta-da!"], order: shuffle}}]] fun-animals: name: Animal sounds grid: [1, 1] speak_only: true rows: [[{label: "Animal sounds", symbol: "dog", color: c3, effect: bounce, seq: {lines: ["Moo!", "Woof!", "Meow!", "Quack!", "Baa!"]}, note: "Use the sounds these animals make in your language (cow, dog, cat, duck, sheep)."}]] fun-party: name: Party grid: [1, 1] speak_only: true rows: [[{label: "Party", symbol: "party", color: c3, effect: confetti, seq: {lines: ["Hooray!", "Let's party!", "Woo-hoo!", "Happy birthday!"], order: shuffle}}]] # ─── Make a choice ─────────────────────────────────────────────────────── choices: name: Make a choice description: Offer the real things too, and give the person what they chose. grid: [3, 3] rows: - [$back, {label: "Drink or snack", go: two-snack, color: c4}, {label: "Music or book", go: two-music, color: c4}] - [{label: "More or all done", go: two-more, color: c4}, {label: "Yes or no", go: two-yesno, color: c4}, {label: "This one or that one", go: two-photo, color: c4}] - [{label: "What shall we do?", go: four-do, color: c4}, {label: "Snack time", go: four-snack, color: c4}, {label: "Choose from four photos", go: four-photo, color: c4}] two-snack: name: Drink or snack grid: [1, 2] speak_only: true rows: [[{say: "A drink, please.", symbol: "drink", color: c2}, {say: "A snack, please.", want_symbol: "snack", color: c3}]] two-music: name: Music or book grid: [1, 2] speak_only: true rows: [[{say: "Music, please.", symbol: "music", color: c2}, {say: "A book, please.", symbol: "book", color: c3}]] two-more: name: More or all done grid: [1, 2] speak_only: true rows: [[{say: "More!", symbol: "more", color: c4}, {say: "All done!", symbol: "all done", color: c6}]] two-yesno: name: Yes or no grid: [1, 2] speak_only: true rows: [[{say: "Yes", symbol: "yes", color: c4}, {say: "No", symbol: "no", color: c6}]] two-photo: name: This one or that one grid: [1, 2] speak_only: true rows: [[{say: "This one!", color: c2, fill: {photo: true, hint: "Add a photo of the first choice"}}, {say: "That one!", color: c3, fill: {photo: true, hint: "Add a photo of the second choice"}}]] four-do: name: What shall we do? grid: [2, 2] speak_only: true rows: - [{say: "Let's play!", symbol: "play", color: c1}, {say: "Music!", symbol: "music", color: c2}] - [{say: "Let's read!", symbol: "book", color: c3}, {say: "Let's go outside!", symbol: "outside", color: c4}] four-snack: name: Snack time grid: [2, 2] speak_only: true rows: - [{say: "An apple, please.", symbol: "apple", color: c1}, {say: "A banana, please.", symbol: "banana", color: c2}] - [{say: "A cookie, please.", symbol: "cookie", color: c3}, {say: "Some cheese, please.", symbol: "cheese", color: c4}] four-photo: name: Choose from four photos grid: [2, 2] speak_only: true rows: - [{say: "This one!", color: c1, fill: {photo: true, hint: "Add a photo of one choice"}}, {say: "This one!", color: c2, fill: {photo: true, hint: "Add a photo of one choice"}}] - [{say: "This one!", color: c3, fill: {photo: true, hint: "Add a photo of one choice"}}, {say: "This one!", color: c4, fill: {photo: true, hint: "Add a photo of one choice"}}] # ─── Learn to scan: two, then four, then a row, then two rows ──────────── scan: name: Learn to scan description: >- Start with two choices, scanned one at a time, slowly, with a large highlight. Every choice is something fun the partner does at once, so every press is rewarded. Move on when the person waits for the choice they want. grid: [2, 3] rows: - [$back, {label: "Two choices", go: scan-2, color: c5}, {label: "Four in a row", go: scan-4, color: c5}] - [{label: "Six in a row", go: scan-6, color: c5}, {label: "Two rows", go: scan-rows, color: c5}, ~] scan-2: name: Two choices description: Scan one at a time (linear), slowly. Do what the person chose, right away. grid: [1, 2] speak_only: true rows: [[{say: "Tickle me!", color: c1}, {say: "Sing a song!", symbol: "sing", color: c2}]] scan-4: name: Four in a row description: Scan one at a time (linear). Keep the same order every time. grid: [1, 4] speak_only: true rows: [[{say: "Tickle me!", color: c1}, {say: "Sing a song!", symbol: "sing", color: c2}, {say: "Blow bubbles!", color: c3}, {say: "Clap with me!", color: c4}]] scan-6: name: Six in a row description: Scan one at a time (linear). The person waits for the one they want. grid: [1, 6] speak_only: true rows: [[{say: "Tickle me!", color: c1}, {say: "Sing a song!", symbol: "sing", color: c2}, {say: "Blow bubbles!", color: c3}, {say: "Clap with me!", color: c4}, {say: "Peekaboo!", color: c5}, {say: "Do it again!", color: c6}]] scan-rows: name: Two rows description: "Scan row by row (row-column): first choose the row, then the choice in it." grid: [2, 4] speak_only: true rows: - [{say: "Tickle me!", color: c1}, {say: "Sing a song!", symbol: "sing", color: c2}, {say: "Blow bubbles!", color: c3}, {say: "Clap with me!", color: c4}] - [{say: "Peekaboo!", color: c5}, {say: "Do it again!", color: c6}, {say: "Let's read!", symbol: "book", color: c2}, {say: "All done!", symbol: "all done", color: c6}]