Accessibility
Buildkite is committed to making its web application usable for everyone, including people who rely on assistive technologies, keyboard navigation, or adjusted visual settings. This page documents the accessibility features currently available across the Buildkite platform.
Theme and display options
Buildkite offers three display theme options, accessible from the top global navigation bar. While these are primarily comfort and usability features rather than accessibility-specific accommodations, they can help users adjust the interface to suit their visual preferences:
- Light: the default Buildkite theme
- Dark: an experimental dark mode that inverts the interface colors
- System: automatically matches your operating system's light or dark preference
The theme selection persists across sessions. When set to System, Buildkite responds to changes in your operating system's display settings in real time.
Dark mode is currently experimental and uses a CSS color inversion technique. Some visual elements may not be displayed perfectly in dark mode. Buildkite is working toward native dark mode support in newer interface components.
Job log themes
The job log viewer offers an additional theme toggle, allowing you to switch between a default dark theme and a light theme for improved readability based on your preference.
Screen reader support
Buildkite uses semantic HTML and ARIA attributes to support screen readers. The depth of support varies across the application—key components have intentional ARIA labeling, while others rely on browser and platform defaults.
Semantic structure
- Pages use the
<main>landmark element with anidanchor for skip navigation. - The
lang="en"attribute is set on the root<html>element. - Navigation, headers, and content areas use semantic HTML elements in many areas.
ARIA attributes
Key interface components include ARIA attributes to convey their purpose and state to assistive technologies:
-
Build status icons: include
aria-labelattributes describing the current state, for example, Build state: PASSED. -
Dialogs: use
role="dialog"with appropriate labeling. -
Tree views: in the build sidebar use
role="tree"androle="treeitem"witharia-expandedstate. -
Combo boxes: use
role="listbox"androle="option"witharia-selectedstate. -
Toggle switches: use
role="switch"witharia-checkedandaria-labelledby. -
Tab interfaces: use
role="tablist"for tabbed navigation. -
Status updates: use
role="status"androle="alert"to announce changes to screen readers. -
Decorative elements: mark with
aria-hidden="true"to prevent screen reader noise.
Color and contrast
Status indicators
Build and job status indicators use both color and distinct icon shapes to convey state. For example, a passed build uses a green checkmark, while a failed build uses a red cross. This means status information doesn't rely on color alone and remains accessible to color-blind users.
Color token system
Buildkite uses a semantic color token system that maps status concepts (success, warning, error, neutral) to specific color palettes with defined foreground, background, and stroke values. This system enables consistent color usage across the application.
Focus ring colors
Keyboard focus indicators use high-visibility colors (lime green and purple) that contrast with the surrounding interface elements.
Typography and text scaling
- The base font size is set to 16px, matching the browser default.
- The browser view is configured with
width=device-width, initial-scale=1.0without restricting user zoom, allowing browser-level text scaling and zoom to work as expected. - Buildkite uses a defined typography hierarchy for headings and body text.
Form accessibility
- Form inputs include associated
<label>elements. - Required fields are indicated with a Required text suffix.
- Related form controls are grouped using
<fieldset>and<legend>elements where appropriate.
Voice input and text-to-speech
The Buildkite web application doesn't include custom voice input or text-to-speech features. The application relies on operating system and browser-level assistive technologies for these capabilities. The ARIA attributes and semantic HTML described above support the correct functioning of these platform-level tools.
Mobile accessibility
The Buildkite web application uses responsive design, adapting to different screen sizes and orientations. Standard browser accessibility features, including text scaling and screen reader support, function on mobile devices.
Known limitations
While Buildkite continues to improve accessibility, there are some known limitations:
- Dark mode uses a CSS color inversion technique, which can occasionally affect color contrast ratios or cause visual artifacts in some components.
- High contrast mode (
prefers-contrast) is not currently detected or supported with custom styles. - Form error messages are not consistently associated with their inputs using
aria-describedby, which may affect screen reader users in some forms. - Not all dynamic content updates use
aria-liveregions, and therefore, some real-time updates may not be immediately announced by screen readers. - There is no built-in font size adjustment feature in the Buildkite interface (browser zoom can be used instead).
- No keyboard shortcut reference or help panel is currently available.
Feedback
If you encounter accessibility issues or have suggestions for improvement, contact the Buildkite support team at support@buildkite.com.