← Component Specifications

Jumpseat Etiquette & Mission — Design Gap

Work item AB#2177 Epic AB#1821 Status Awaiting design & comms review

The gap

Etiquette and Mission ship in the native app today and are reachable from the Jumpseat Info menu, but they do not exist in the Figma file. There is no page spec for either — the suite has 12 page-spec files and none mentions them, including pages/flight-finder.html, which covers the rest of the Jumpseat area.

This was already half-recorded: jsff-screen-data-gap.html carries open question #4, “Jumpseat sub-nav — Tabs (Flight Finder · Airline Policies · Etiquette · Mission) — section nav; confirm membership/routes.” That question was never answered, and in the meantime the two tabs were built.

Until this build the two tabs were dead. Tapping Etiquette or Mission moved the sub-nav highlight and did nothing else — the Flight Finder search form stayed on screen, so the strip claimed to have navigated when it had not. That reads as a broken page rather than an unbuilt one, which is why they were built rather than left pending design.

Etiquette — side by side

Native (XAML, shipped today)

Native XAML Jumpseat Etiquette page

BannerPage + WebView Banner reads “Jumpseat Info / Etiquette and Courtesy”. Body is a single WebView rendering a hardcoded HTML string. The video is an <iframe> to the streaming host, pillarboxed with black bars. Heading sits under the video in grey. Copy is Word-exported markup at a fixed size — it does not respond to the OS text-size setting.

Blazor (this build, for review)

Blazor Jumpseat Etiquette page

AlpaScreen + design-system type Title bar reads “Etiquette” with a back chevron; the app's top nav and tab bar are present. Poster thumbnail is full-bleed 16:9, no pillarboxing, and tapping it opens the briefing. Heading sits beneath the poster as in native. Copy uses the app type scale, so it grows with the OS text-size setting, and the bullets are a real list.

Mission — side by side

Native (XAML, shipped today)

Native XAML Jumpseat Mission page

BannerPage + WebView Banner reads “Jumpseat Info / Mission”. Eyebrow and sub-head, committee seal, then three mission points numbered by hand as separate paragraphs. Two typos are visible in the shipped copy (see below).

Blazor (this build, for review)

Blazor Jumpseat Mission page

AlpaScreen + design-system type Same content and order. The three points are a real ordered list, so the numbering is structural and screen readers announce it. Typos corrected. The jumpseatinfo.org link opens in the system browser and is now https.

What changed, and why

AspectNativeBlazorReason
ChromeBannerPage banner with icon + two-line titleAlpaScreen title bar + back chevron, top nav, tab bar Matches every other Blazor page. The banner slot still exists via PageBanner keys, which were already defined for both screens.
TypographyHind webfont at fixed pt/pxApp type scale (Futura PT) The native WebView ignores the OS text-size bridge; this copy now scales with the rest of the app.
Bullets / numberingParagraphs with a bullet glyph typed in and a 45px inline indent; mission points hand-numberedReal <ul> / <ol> Structure is announced to screen readers instead of implied, and the indent leaves the markup.
VideoInline <iframe>, pillarboxedPoster thumbnail, opens the briefing outside the app Forced, not preferred — see the note below.
StylingWord-export markup (MsoNormal, mso-fareast-font-family, tab-interval) and inline stylesalpa-jsinfo-* CSS block House rule: visual values live in the stylesheet, not inline.

The video cannot play inline, and that is a platform limit rather than a choice. Measured on device: <video src=…> fails outright (networkState 3, error 4 SRC_NOT_SUPPORTED) because the URL ends .mp4 but serves a player page, not a stream. <iframe src=…> never loads in-page either: BlazorWebView treats a navigation to an external origin as an external link and hands it to the system browser, so the frame stays empty and the app backgrounds. The native page gets away with an iframe only because a plain WebView does not intercept. Rather than ship an embed that renders as a dead black box, the poster is an explicit control.

The poster image is a captured frame, not a served asset. There is no fetchable poster URL — four candidate paths all fail — and the player page is CORS-blocked, so it cannot be derived at runtime. The thumbnail therefore will not follow if the briefing is ever re-cut. Ask for comms: a proper poster asset, ideally alongside a direct-play stream URL.

Content corrections

Three errors in the shipped native copy were corrected rather than ported. They are listed so the change is visible and reversible — this is committee copy, and it is comms' call.

PageNative (shipped)BlazorType
Mission“undermined in any manner of under any circumstances”“…in any manner or under any circumstances”Typo
Missionapporpriate procedures, equipment, and training”appropriate procedures…”Typo
Etiquette“multiple jumpseat riders whenunoccupied cabin seats”“…riders when unoccupied cabin seats”Missing space (string concatenation)
Missionhttp://www.jumpseatinfo.orghttps://www.jumpseatinfo.orgScheme

A fifth menu item is missing from the sub-nav

The native Jumpseat Info menu has five entries: Airline Policy, Etiquette and Courtesy, Mission, Jumpseat Flight Finder, and Alaska Reciprocal List. The Blazor sub-nav has four tabs and no route for the Alaska list. This is a separate gap and is not addressed in this build.

Open questions

#ForQuestion
1DesignDo Etiquette and Mission belong in the Jumpseat sub-nav at all, or should they sit behind a single “Jumpseat Info” entry as they do natively? This is jsff open question #4, still unanswered — the build assumes the sub-nav.
2DesignIs the Blazor treatment acceptable as the design of record for these two screens, or should they be drawn in Figma and rebuilt? They are currently the only member-facing screens with no design source.
3DesignIs a poster thumbnail that leaves the app acceptable, given inline playback is not possible? If not, the alternative is dropping the video from the page and linking it from the copy.
4CommsCan we get a poster asset for the briefing, and ideally a direct-play stream URL? Both would remove the captured-frame dependency.
5CommsConfirm the three copy corrections above, or tell us to restore the shipped wording byte-for-byte.
6DesignShould Alaska Reciprocal List join the sub-nav, or stay out of the Blazor Jumpseat area?
7DesignMission's eyebrow (“Preflight Your Jumpseat”) and sub-head (“No Pilot Left Behind”) are left-aligned body text carried over from the native page. Should they become a proper hero treatment?

Routes

ScreenBlazor routeNative page
Etiquette/jumpseat/etiquetteJumpseatEtiquettePage
Mission/jumpseat/missionJumpseatMissionPage