Airframe GitHub Storybook
Component

ba-message-global

A site-wide or product-wide message displayed above the global header, used to communicate important information. For example, flight disruptions and important operational updates.

Airframe

Active
Figma

Web Components

Active
Storybook GitHub

React

Active
Storybook GitHub

React Native

Planned
Design Code Accessibility QA
A

Message container

Full-width container shown at the top of the page to group critical information.

B

Type indicator

Decorative icon indicating the message variant (for example info or error).

C

Heading

Short summary including the severity and core message.

D

Content

Additional detail explaining context and any required next step.

E

Action link (optional)

Optional link to help users resolve the issue or find more information.

For example:

  • info should be used for non-critical updates, such as routine service announcements and general information
  • error should be used for critical messages, such as system outages, booking failures, or critical safety alerts that require immediate attention

Using only a heading without any accompanying content in ba-message-global is not recommended. Include content that explains why the message is shown and what action is required.

The message should only be used for important and critical information that is relevant to all customers. Using it for marketing or promotional messages will reduce the impact of the message when it is used for its intended purpose.

To avoid confusion, only one message of each variant should be shown on a page at a time. If multiple messages are required, group multiple messages of the same variant into a single message.

<ba-message-global>
  <h2 slot="heading">Example heading</h2>
  <ba-content>
    <p>Example content</p>
  </ba-content>
  <ba-link href="/link" slot="action">Action</ba-link>
</ba-message-global>
Property Attribute Description Type Default
variant variant Set the message icon and colour "error" | "info" | undefined 'error'
  • None
Slot Description Permitted elements
Unnamed slot Elements will render in the body of the component <ba‑content>, <ba‑flex>, <ba‑grid>
"heading" Text to show at next to the icon at the top of the message <h2>
"action" Components to show at the bottom of the card <ba‑button>, <ba‑details>, <ba‑flex>, <ba‑link>

None

In most scenarios a message will consist of a heading, some content, and an action to find out more or resolve the issue.

An important message that lets the customer know they need to perform an action.
<ba-message-global>
  <h2 slot="heading">Important information about flight to London</h2>
  <ba-content>
    <p>Some further details about what the issue is...</p>
  </ba-content>
  <ba-link href="/url" slot="action">Action to find out more</ba-link>
</ba-message-global>
Prop Description Type Default
variant Set the message icon and colour "error" | "info" | undefined 'error'
children Elements will render in the body of the component <ba‑content>, <ba‑flex>, <ba‑grid>
heading Text to show at next to the icon at the top of the message <h2>
action Components to show at the bottom of the card <ba‑button>, <ba‑details>, <ba‑flex>, <ba‑link>

None

None

In most scenarios a message will consist of a heading, some content, and an action to find out more or resolve the issue.

An important message that lets the customer know they need to perform an action.
<BaMessageGlobal
  action={<BaLink href="/url">Action to find out more</BaLink>}
  heading={<h2>Important information about flight to London</h2>}
>
  <BaContent>
    <p>Some further details about what the issue is...</p>
  </BaContent>
</BaMessageGlobal>

React Native documentation coming soon.

Because this component often displays critical information, it should always appear as the first element on the page (above the ba-header if present). This positioning ensures that all users see the message before any other content.

To ensure that messages are universally understood, the severity (or variant) must be included in the heading. This is because:

  • Icons are not understandable by all users
  • Icons are decorative and hidden from screen readers
  • Users who are colourblind may have difficulty differentiating message types by colour alone
  • In high contrast mode the message colours are the same

Heading examples that include severity:

  • Error. Please fix the following issues (Error type)
  • Urgent. We need further information before you can check in (Error type)
  • Important information about your flight (Info type)
  • An update on Covid-19 (Info type)

Further reading:

In high contrast mode:

  • All message types use the current text colour for the icon and keyline
  • A one pixel border is added to the bottom edge of the message to help users understand that the content is grouped

State: Focus starts at top of page

⇥ Tab

Moves focus to the first interactive element, including the message action link if present.

State: Action link in message is focused

⏎ Enter

Activates the action link.

␣ Space

Scrolls page (standard link behaviour); does not activate the link.

⇥ Tab

Moves focus to the next focusable element.

Use this checklist to confirm the component has been configured and used correctly.

  • Use the correct variant for context (for example info for non-critical updates, error for critical issues).
  • Include content in addition to a heading so users understand why the message appears.
  • Do not use this component for marketing or promotional content.
  • Show only one message per variant on a page; combine same-variant messages where needed.
  • Place ba-message-global as the first element on the page.
  • Include severity in the heading text (do not rely on icon or colour alone).
  • Ensure all message text is clear and understandable without visual cues.
  • Ensure any action link is keyboard operable and in logical tab order.
  • Ensure message meaning remains clear in high contrast mode.

These checks are handled by the component and do not need to be repeated each time it is used.

  • In high contrast mode, icon and keyline must use current text colour.
  • In high contrast mode, a 1px bottom border must be present to show grouping.
  • Keep icon decorative and hidden from assistive technologies where appropriate.
  • Verify text and UI contrast meet WCAG requirements.
Designing Developing Components BAgel helper QA process britishairways.com Careers Cookie policy