Skip to content

Add AccessibilityReportsComparer class

Max Orefice requested to merge mo-add-accessibility-report-comparison into master

Part of #211389 (closed)

This feature will be behind a feature flag called accessibility_report_view.

What does this MR do?

Step #7 to introduce Accessibility Report comparison with our Merge Request Widget.

The entire feature has been developed on an MVC branch, this MR aims to break it down in smaller chunk.

Why are we doing this?

This MR introduces our AccessibilityReportsComparer class which will be used to compare 2 reports between themselves (master vs branch).

This is a similar approach to what we do with our TestSuiteComparer or our VulnerabilityReportsComparer.

It adds all the logic necessary to provide the data required by the MR widget.

I will follow up with another MR to introduce the API leveraging this class and adding the following schema:

Click here to see the JSON schema.

{
  :status=>"failed",
  :new_errors=>
  [
    {
      :code=>"WCAG2AA.Principle4.Guideline4_1.4_1_2.H91.A.NoContent",
      :type=>"error",
      :type_code=>1,
      :message=>"Anchor element found with a valid href attribute, but no link content has been supplied.",
      :context=>"\n        ",
      :selector=>"html > body > header > div > nav > a",
      :runner=>"htmlcs",
      :runner_extras=>{}
    }
  ],
  :resolved_errors=>[],
  :existing_errors=>
  [
    {
      :code=>"WCAG2AA.Principle4.Guideline4_1.4_1_2.H91.A.NoContent",
      :type=>"error",
      :type_code=>1,
      :message=>"Anchor element found with a valid href attribute, but no link content has been supplied.",
      :context=>"\n        ",
      :selector=>"html > body > header > div > nav > a",
      :runner=>"htmlcs",
      :runner_extras=>{}
    }
  ],
  :summary=>{
    :total=>1,
    :resolved=>0,
    :errored=>2
  }
}
  

Screenshots

You can see how the feature will look like with the screenshot provided below:

image

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Jackie Porter

Merge request reports