Safety Notice - msupino/NavigationApp GitHub Wiki
๐ฎ๐ฑ ืขืืจืืช
The safety notice
Every launch opens with it, before the chart is usable:
Before you fly
NavAid is a planning aid. It is NOT certified for navigation and must not be used as a primary reference in flight.
- Plan and fly using current official charts, AIP, NOTAM and weather.
- Chart, airspace, NOTAM and weather data here may be incomplete, delayed or wrong.
- The pilot in command is responsible for the safe conduct of every flight.
Every launch, not once
The same way airmap-israel opens. A pilot starting the app is about to fly, and "you agreed to this in March" is not what a notice about not navigating by it is for: it is read at the top of the session, like a briefing, or it is decoration.
So nothing is remembered โ no stored acknowledgement, no wording version, no per-language bookkeeping. It follows that a reload is a launch, and that is meant rather than tolerated: a refresh, a language switch, an APK picking up a new build, an iOS bundle installed at startup.
The only way out is the acknowledgement
No close button, and neither Escape nor a click on the backdrop dismisses it. A notice with another way out is one that gets dismissed without being read.
Terms and Privacy open in a new tab โ following a link from the notice would throw away an unanswered acknowledgement.
It waits for the boot screen
The notice appears once the loading screen has gone, not when the page's load event fires.
The boot screen covers the whole window and outlives load โ it comes down when the first
chart tiles paint โ so a notice shown at load sat behind it: invisible, and clickable
straight through it once the splash stopped taking taps. An acknowledgement that can be
recorded by a tap on a screen which never showed the words is worth nothing.
The new-user intro comes after it
The map tour and the Click the map to add your first waypoint hint wait until Accept is pressed. Started during boot they sat under the notice, hidden, and the hint was marked seen there, so a new user never saw either. (The first-route hint is off by default, featureRouteIntro.)
Reading it in the other language
The notice carries its own language control โ a dropdown listing HE and EN โ because
it is the first thing on screen and the menu's own control is behind it. Two letters rather
than ืขืืจืืช and English: a list whose entries are translated is one a reader cannot use when
the page is in the language they do not read, which is exactly the reader it exists for. Each
option carries the language's own name as its title and its aria-label. Choosing a language is the app's language,
not the notice's: the map, the menu and every panel follow, and the notice opens again in the
language now on screen โ which is the point. A follower's link (?follow=โฆ#k=โฆ) survives the
switch intact.
Tunables
| Key | Default | What it does |
|---|---|---|
featureDisclaimer |
true |
Show the notice at all. The gist can withdraw it |
For maintainers
docs/app/disclaimer.js, with the strings in docs/app/core.js and docs/i18n/he/strings.js.
The test suite would otherwise meet the notice in every one of its specs, so the shared fixture
switches it off with window.__navaidNoDisclaimer; the specs that are about the notice opt
back in with test.use({ acknowledgeDisclaimer: false }) and take the boot screen down
themselves. tests/disclaimer.spec.js covers the wording, the single way out, the boot-screen
order and the language control.
The same switch is why the screenshot generators are unaffected: wiki-screenshots.spec.js
and og-preview.spec.js run on the shared fixture, so the notice never opens in front of a
screenshot, and scripts/appstore-screenshots.mjs sets the flag for itself. A store listing
shows the app, not its front door โ and a reviewer meets the notice on the build's first
launch anyway.