mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-08-04 08:06:26 +08:00
Address classroom tester feedback (Detlef / FSC e.V.)
Fixes the most impactful issues from ~1.5h of testing: - TTS: spell SID prefixes phonetically (ANEKI → Alfa November Echo Kilo India) so unfamiliar waypoint names are intelligible without prior briefing context. - TTS: expand standalone uppercase waypoints after via/direct (with a skip list for common ATC English tokens like MAYDAY, CLEARED, …). - TTS: join taxi route tokens with ", " so pauses land between taxiways (C5, Z5, U10, …) instead of running together. - TTS: handle "ILS Z 25C" variant before the runway → "ILS Zulu runway two five center" (was previously read as "Zee twentyfive cee"). - Scenarios: derive arrivalRunway from the chosen approach so the controller no longer clears a flight for ILS 25C onto runway 18. - Radio check: accept any readability 1–5 (numeric or spoken), shorten placeholder so it fits the sm-width field. - Line-up readback: clearer hint about the runway-first ICAO order. - Classroom UI: disable browser autocomplete/autocorrect on readback inputs (Edge autofill was injecting unrelated values). - Classroom UI: "Speak answer" button replays the expected readback as TTS so students can hear the correct phrasing. Tests adjusted for the new SID and taxi-route phonetics. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -480,12 +480,8 @@ const fundamentalsLessons: Lesson[] = [
|
||||
key: 'rc-readability',
|
||||
label: 'Readability',
|
||||
expected: scenario => scenario.readabilityWord,
|
||||
alternatives: scenario => [
|
||||
scenario.readability.toString(),
|
||||
scenario.readabilityWord,
|
||||
scenario.readabilityWord.toLowerCase()
|
||||
],
|
||||
placeholder: 'Enter readability (1-5)',
|
||||
alternatives: () => ['1', '2', '3', '4', '5', 'one', 'two', 'three', 'four', 'five', 'wun', 'too', 'tree', 'fife'],
|
||||
placeholder: '1–5',
|
||||
width: 'sm'
|
||||
}
|
||||
],
|
||||
@@ -927,8 +923,8 @@ const readbackLessons: Lesson[] = [
|
||||
desc: 'Acknowledge line up and wait',
|
||||
keywords: ['Tower', 'Line Up'],
|
||||
hints: [
|
||||
'Repeat the runway, then say "line up and wait".',
|
||||
'Place the call sign at the end.'
|
||||
'In the readback, state the runway first — even though the controller said it last.',
|
||||
'ICAO standard: runway leads the readback, then "line up and wait", then your call sign.'
|
||||
],
|
||||
fields: [
|
||||
{
|
||||
@@ -2847,7 +2843,8 @@ const fullFlightLessons: Lesson[] = [
|
||||
desc: 'Acknowledge the line-up clearance',
|
||||
keywords: ['Tower', 'Line Up', 'Flow'],
|
||||
hints: [
|
||||
'Repeat the runway and add "line up and wait".'
|
||||
'In the readback, state the runway first — even though the controller said it last.',
|
||||
'ICAO standard: runway leads the readback, then "line up and wait", then your call sign.'
|
||||
],
|
||||
fields: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user