GitLab Accessibility Conformance Report WCAG Edition

Based on Version 2.4Rev, March 2022 (template)

  • Name of Product/Version: GitLab 15.0
  • Report Date: Revised September, 2022
  • Product Description: From project planning and source code management to CI/CD and monitoring, GitLab is a single application for the entire DevOps lifecycle.
  • Contact information: ux@gitlab.com
  • Notes:
    • This evaluation only refers to GitLab the product and does not include the about.gitlab.com or docs.gitlab.com websites.
    • The latest revision evaluates GitLab 15.0 and supersedes earlier versions of this report.
    • Table 3: Success Criteria, Level AAA has been removed because the GitLab product has not been evaluated for WCAG 2.0 Level AAA conformance.
    • GitLab supports the current and previous major version along with current minor version of the following browsers: Mozilla Firefox, Google Chrome, Chromium, Apple Safari, Microsoft Edge.
    • GitLab does not support running with JavaScript disabled in the browser because several features require JavaScript extensively.
    • View GitLab installation minimum requirements for both the supported operating systems and the minimum requirements needed to install and use GitLab.
    • Known accessibility issues are linked in the tables below and may also be found by searching GitLab.com (account required).
  • Evaluation Methods Used: Conformance to the listed accessibility standards has been evaluated by GitLab using a combination of analysis tools and manual testing with assistive technologies. These tools include, but are not limited to: axe DevTools®, Lighthouse, NVDA, and VoiceOver on macOS.

Applicable Standards/Guidelines

This report covers the degree of conformance for the following accessibility standard/guidelines:

Standard/Guideline Included In Report
Web Content Accessibility Guidelines 2.0 or WCAG 2.0 (ISO/IEC 40500)
  • Level A (Yes)
  • Level AA (Yes)
  • Level AAA (No)
Web Content Accessibility Guidelines 2.1 or WCAG 2.1
  • Level A (Yes)
  • Level AA (Yes)
  • Level AAA (No)

Terms

The terms used in the Conformance Level information are defined as follows:

  • Supports: The functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation.
  • Partially Supports: Some functionality of the product does not meet the criterion.
  • Does Not Support: The majority of product functionality does not meet the criterion.
  • Not Applicable: The criterion is not relevant to the product.
  • Not Evaluated: The product has not been evaluated against the criterion. This can only be used in WCAG 2.x Level AAA.

WCAG 2.x Report

NOTE: When reporting on conformance with the WCAG 2.x Success Criteria, they are scoped for full pages, complete processes, and accessibility-supported ways of using technology as documented in the WCAG 2.0 Conformance Requirements .

Table 1: Success Criteria, Level A

Criteria Conformance Level Remarks and Explanations
1.1.1 Non-text Content (Level A) Partially supports

The product has many instances where non-text content does not have a text alternative: https://gitlab.com/groups/gitlab-org/-/epics/567, https://gitlab.com/groups/gitlab-org/-/epics/564

1.2.1 Audio-only and Video-only (Prerecorded) (Level A) Supports

The product does not include any audio-only or video-only media.

However, users have the ability to upload their own media. In these cases, users have the ability to include alternative representations, such as text transcripts.

1.2.2 Captions (Prerecorded) (Level A) Partially supports

The product does not include any audio-only or video-only media.

However, users have the ability to upload their own media. Captions are supported for videos provided by third-party tools that offer this capability. The product does not provide capabilities for captioning user generated audio or video content. https://gitlab.com/gitlab-org/gitlab/issues/25796

1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A) Not applicable

The product does not use synchronized media.

1.3.1 Info and Relationships (Level A) Partially supports

The product has many instances where information, structure, and relationships can not be programmatically determined: https://gitlab.com/groups/gitlab-org/-/epics/567

1.3.2 Meaningful Sequence (Level A) Supports

The product content is presented in a way that can be sequentially or programmatically determined.

1.3.3 Sensory Characteristics (Level A) Supports

The product does not depend solely on sensory characteristics such as shape, size, visual location, orientation, or sound to understand content.

1.4.1 Use of Color (Level A) Partially supports

The product does not use colors as the only visual means of conveying information. The exception is for text links which do still rely on color: https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1084

1.4.2 Audio Control (Level A) Not applicable

The product does not include auto-playing audio or provide the ability for user generated audio to automatically play.

2.1.1 Keyboard (Level A) Partially supports

The product has many instances of content that is not operable through a keyboard: https://gitlab.com/groups/gitlab-org/-/epics/565

2.1.2 No Keyboard Trap (Level A) Partially supports

The product ensures that users can move their focus away from a focused component using only the keyboard.

A few instances were discovered where the user could not navigate away from focused file editors: https://gitlab.com/groups/gitlab-org/-/epics/627

2.1.4 Character Key Shortcuts (Level A 2.1 only) Supports The product contains a mechanism to turn all shortcuts off.
2.2.1 Timing Adjustable (Level A) Supports

The product allows administrators to adjust any timeout functionality.

2.2.2 Pause, Stop, Hide (Level A) Supports

The product does not include any moving, blinking, or scrolling content that lasts for more than 5 seconds.

Information that is auto-updated is essential for showing correct status.

2.3.1 Three Flashes or Below Threshold (Level A) Supports

The product does not use flashing interface elements that flash more than three times within a 1 second period.

Users have the ability to upload content that may contain flickering.

2.4.1 Bypass Blocks (Level A) Supports

The product provides an option to bypass the repeated navigation on each page by hitting tab on page load.

2.4.2 Page Titled (Level A) Supports

Each page of the product includes titles that describe the topic or purpose.

2.4.3 Focus Order (Level A) Partially supports

The product uses a logical tab order and consistent keyboard keys to perform actions.

Some components use inconsistent or non-normative keyboard controls.

2.4.4 Link Purpose (In Context) (Level A) Partially supports

The product includes the purpose of each link.

A few instances were discovered where the link purpose was not clear: https://gitlab.com/groups/gitlab-org/-/epics/620

2.5.1 Pointer Gestures (Level A 2.1 only) Not applicable This criterion is not relevant because the product does not use pointer gestures.
2.5.2 Pointer Cancellation (Level A 2.1 only) Partially supports

The product has some instances where down-events are initialized without a method to easily undo or abort: https://gitlab.com/groups/gitlab-org/-/epics/8761

2.5.3 Label in Name (Level A 2.1 only) Supports The product has controls where the accessible name matches visible label.
2.5.4 Motion Actuation (Level A 2.1 only) Not applicable This criterion is not relevant because the product does not use motion actuation.
3.1.1 Language of Page (Level A) Supports

The product uses the language attribute on the HTML element to specify the default language of a page.

3.2.1 On Focus (Level A) Supports

The product does not initiate a change of context when a component receives focus.

3.2.2 On Input (Level A) Supports

The product does not initiate a change of context when a value setting is changed unless specified by the actionable area.

3.3.1 Error Identification (Level A) Partially supports

The product describes input errors to the user and identifies which item the error originated from.

However, the identification and description of an error is not combined programmatically to help assistive technologies to identify an error and provide error information to the user: https://gitlab.com/groups/gitlab-org/-/epics/7341

3.3.2 Labels or Instructions (Level A) Partially supports

The product ensures that labels or instructions are provided for inputs.

A few instances were discovered where a label was not present: https://gitlab.com/groups/gitlab-org/-/epics/621

4.1.1 Parsing (Level A) Partially supports

The product has instances of non-unique ID values. Some of which are related to .js- prefixed IDs used specifically for JavaScript. https://gitlab.com/gitlab-org/gitlab/issues/17928

4.1.2 Name, Role, Value (Level A) Partially supports

The product has many instances where the name, role, or value cannot be programmatically determined or set. https://gitlab.com/groups/gitlab-org/-/epics/567

Table 2: Success Criteria, Level AA

Criteria Conformance Level Remarks and Explanations
1.2.4 Captions (Live) (Level AA) Not applicable

This criterion is not relevant because the product does not use synchronized media.

1.2.5 Audio Description (Prerecorded) (Level AA) Not applicable

This criterion is not relevant because the product does not use synchronized media.

1.3.4 Orientation (Level AA 2.1 only) Supports The product is reponsive to variable viewport sizes and orientations.
1.3.5 Identify Input Purpose (Level AA 2.1 only) Partially supports

The product uses input types and has some instances of autocomplete attributes on input fields.

However, not all input fields implement identifying expected form input data: https://gitlab.com/groups/gitlab-org/-/epics/8762

1.4.3 Contrast (Minimum) (Level AA) Partially supports

The product has some instances where the contrast ratio of text (enabled) is not at least 4.5:1. https://gitlab.com/groups/gitlab-org/-/epics/562

1.4.4 Resize text (Level AA) Partially supports

The product supports the use of standard zoom capabilities built into modern web browsers.

However, there are a few instances where text is clipped or inaccessible when zoomed: https://gitlab.com/groups/gitlab-org/-/epics/563

1.4.5 Images of Text (Level AA) Supports

The product does not use images of text.

1.4.10 Reflow (Level AA 2.1 only) Supports The product is reponsive to variable viewport sizes.
1.4.11 Non-text Contrast (Level AA 2.1 only) Partially supports

The product has some instances where non-text contrast ratio is not at least 3:1: https://gitlab.com/groups/gitlab-org/-/epics/8763

1.4.12 Text Spacing (Level AA 2.1 only) Supports The product adapts to increases in text spacing.
1.4.13 Content on Hover or Focus (Level AA 2.1 only) Supports The product supports control for content on hover or focus.
2.4.5 Multiple Ways (Level AA) Supports

The product provides multiple ways to locate and navigate to a page.

2.4.6 Headings and Labels (Level AA) Partially supports

The product uses descriptive headings and labels to describe the purpose or topic on a page.

A few instances are known where headings could be utilized to better describe the sections of the page: https://gitlab.com/groups/gitlab-org/-/epics/566

2.4.7 Focus Visible (Level AA) Partially supports

The product uses visual changes to elements to indicate the current focus position.

There are instances where a state change happens but does not include a visible focus indicator. There are other instances where the default browser focus ring is present and may lack sufficient contrast.

3.1.2 Language of Parts (Level AA) Does not support

The product uses the language attribute on the HTML element to specify the default language of a page. However, there is no mechanism to specify different languages for subsets of a page. For example, if a user were to enter a comment in a different language.

3.2.3 Consistent Navigation (Level AA) Supports

The product consistently repeats navigation controls across pages.

3.2.4 Consistent Identification (Level AA) Supports

The product uses components that have consistent functionality across pages.

3.3.3 Error Suggestion (Level AA) Partially supports

The product provides suggestion for how to mitigate input errors.

However, the identification and description of an error is not combined programmatically to help assistive technologies to identify an error and provide remedy suggestions to the user: https://gitlab.com/groups/gitlab-org/-/epics/7341

3.3.4 Error Prevention (Legal, Financial, Data) (Level AA) Supports

The product ensure that when legal commitments or financial transactions occur users have the ability to correct validated input errors, review and confirm submission prior to submitting data, or reverse the submission.

4.1.3 Status Messages (Level AA 2.1 only) Partially supports

The product uses roles to provide status messages to assistive technologies without receiving focus.

However, not all visual responses to user actions use a status message perceptive to assitive technologies: https://gitlab.com/groups/gitlab-org/-/epics/8764

Table 3: Success Criteria, Level AAA

NOTE: The GitLab product has not been evaluated for WCAG 2.0 Level AAA conformance.

This document is provided for information purposes only and the contents hereof are subject to change without notice. GitLab does not warrant that this document is error-free, nor does it provide any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. GitLab specifically disclaims any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. GitLab further makes no representation concerning the ability of assistive technologies or other products to interoperate with GitLab products. This document addresses the named product(s) only and not prerequisite products for which GitLab supplies restricted use licenses.

Last updated at: