Skip to content

fix(checkbox): remove redundant role#1095

Merged
kheinrich-eightfold merged 2 commits intomainfrom
kheinrich/rm-checkbox-role
Mar 2, 2026
Merged

fix(checkbox): remove redundant role#1095
kheinrich-eightfold merged 2 commits intomainfrom
kheinrich/rm-checkbox-role

Conversation

@kheinrich-eightfold
Copy link
Copy Markdown
Contributor

@kheinrich-eightfold kheinrich-eightfold commented Jan 23, 2026

SUMMARY:

Multiple PCS a11y tickets had flagged the role="checkbox" attribute on the input[type=checkbox] used in the Checkbox component. This is the default role for this input type and so marking it explicitly is redundant.

GITHUB ISSUE (Open Source Contributors)

JIRA TASK (Eightfold Employees Only):

https://eightfoldai.atlassian.net/browse/ENG-176879

CHANGE TYPE:

  • Bugfix Pull Request
  • Feature Pull Request

TEST COVERAGE:

  • Tests for this change already exist
  • I have added unittests for this change

TEST PLAN:

  • Pull branch and run yarn storybook
  • Open Storybook and navigate to the Checkbox component
  • Inspect the input for the Checkbox in the first story/example. Ensure that the input has type="checkbox" applied, and that it does NOT have a redundant role="checkbox" applied.

@codesandbox-ci
Copy link
Copy Markdown

codesandbox-ci Bot commented Jan 23, 2026

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.11%. Comparing base (18c8795) to head (d5770a3).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1095   +/-   ##
=======================================
  Coverage   84.11%   84.11%           
=======================================
  Files        1146     1146           
  Lines       21149    21149           
  Branches     8042     8042           
=======================================
  Hits        17790    17790           
  Misses       3272     3272           
  Partials       87       87           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@factory-droid factory-droid Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Description:
The PR removes redundant role="checkbox" attributes from checkbox input elements since this role is implicit for input[type=checkbox]. The role attribute is now only set to "switch" when the toggle prop is true, maintaining accessibility standards while eliminating unnecessary ARIA attributes.

Review:
LGTM

Open in Factory.
Click For Summary of Files

Summary of Files

Files Modified

src/components/Form/Tests/__snapshots__/Form.disabled.shot
Removed redundant role attributes from checkbox inputs in Form component snapshots:

- Removed explicit role="checkbox" attributes from input[type="checkbox"] elements to rely on implicit role
- Preserved all other accessibility attributes including aria-disabled and disabled states
- Updated corresponding x-attribsPrefix objects to reflect attribute removal
src/components/CheckBox/CheckBox.tsx
Optimize checkbox accessibility by removing redundant ARIA role:

- Modified role attribute to only set 'switch' when toggle is true, otherwise undefined
- Removed unnecessary explicit 'checkbox' role to rely on implicit role from input[type=checkbox]
src/components/Table/Tests/__snapshots__/Table.fixselectionexpandonleft.shot
No summary generated for this file.
src/components/Table/Tests/__snapshots__/Table.usecolselectionwithkey.shot
Removed redundant ARIA role attributes from checkbox inputs in table component snapshots:

- Removed role="checkbox" attribute from input elements where type="checkbox" is already present
- Maintained existing accessibility attributes (aria-label, aria-disabled) while removing redundant role declarations
- Applied changes consistently across both "Select all" and row selection checkboxes
src/components/Table/Tests/__snapshots__/Table.fixselectionwithcols.shot
No summary generated for this file.
src/components/Table/Tests/__snapshots__/Table.fixselectionleft.shot
No summary generated for this file.
Tips
Review Droid is highly customizable and comes with powerful features for augmenting your organization's code review process. Here are some tips to get the most out of it.

Table of contents

⌨️ Droid Fill

Contextual PR Body Replacement

When you create a PR with the @droid fill command anywhere in your PR body, Review Droid will fill in the PR description for your pull request based on it's PR analysis. This will also take into account your pull request templates.

Review Droid can also analyze your project management system. If you have a project management system integrated with Factory (e.g. Linear, Jira) Review Droid will also integrate information from linked and related tickets.

At Factory, we typically create our PR's with this command. For example, let's say I'm creating a PR which addresses the jira ticket FAC-123. I would write the following PR description:

@droid fill FAC-123

and your Review Droid fills in the rest!

📚 Review Guidelines

Creating guidelines for Droid to follow

You can configure guidelines that Droid will follow when reviewing your PRs. Droid will focus on these aspects of your code and aim to leave in-line comments if any guidelines are violated.

Guidelines are defined in your repository's .droid.yaml. Every week, Droid will automatically refine and edit these guidelines based on the feedback you leave on Droid's comments.

💬 Droid Chat

Ask questions on a PR

You can leave in-line comments on PR's by tagging @droid in-line. This can be helpful when reviewing other's PRs. Some examples include:

  • @droid this section looks sketchy, are there issues with it?
  • @droid can you show me some examples of what this regex matches?
  • @droid is this the most efficient way to do this? I'm concerned about performance.

Follow up with Review Droid's Comments

You can reply to Review Droid's in-line review comments directly to ask questions or provide feedback. Some examples include:

  • @droid I made the change you suggested, does that fix the issue?
  • @droid we don't actually need to do this because of X, Y, Z. Can you confirm?
  • @droid do we have any scripts that rely on this behavior?

🛠️ PR Healing

Diagnose & Fix Failures in CI

Review Droid is aware of the CI processes you utilize and proposes fixes in case of any failures. This allows it to promptly address issues in your pull requests before they escalate.

By default, PR Healing is activated. Your organization does not have advanced PR healing enabled, which involved Review Droid directly making a PR to your PR which fixes the issue. If you would like to enable this feature, you must have an Enterprise Plan.

🎓 Teaching Droid

Giving Droid feedback so it learns

You can give feedback to Review Droid by replying or reacting to its comments (👍 / 👎). This helps Review Droid learn from your preferences and improve its future reviews.

To send feedback directly to the Factory team, include @droid feedback in your comment. Droid will file a ticket with your feedback and provide a ticket ID so you can track it with our support team.

🔎 Review Usage

Re-Requesting Review

If you make changes to your PR and want Review Droid to re-review it, you can simply comment @droid review on the PR. This will trigger Droid to re-review the PR and update the review body.

.droid.yaml to Configure Review Droid

You can place a .droid.yaml file in the root of your repository. This file contains settings for a variety of features and settings including:

  • Guidelines - For defining the rules that Review Droid will enforce
  • Enabling/Disabling Per-file Summaries
  • Enabling/Disabling PR Healing
  • Path Filters (For ignoring certain files or directories)
  • Auto-Review Settings
  • Chat settings

To override a setting leave a comment on a PR with the setting to disable/enable/reset. For example @droid setting disable progress_comment. The current options are: progress_comment, lgtm_comment, and list.

list is a special setting that will list all the settings that you have set and will explain what each setting does.

For more information, you can view our documentation at https://docs.factory.ai - the password is factory.

Ignoring Reviews

If you want to have your PR ignored by Review Droid you can define Droid Ignored Title Words in your .droid.yaml file. If the title of your PR contains any of these words, Review Droid will ignore the PR.

Your organization currently has the following words in the Droid Ignored Title Words list:
None

@ychhabra-eightfold ychhabra-eightfold changed the title Remove redundant role on Checkbox fix(checkbox): remove redundant role Mar 2, 2026
@kheinrich-eightfold kheinrich-eightfold merged commit b3648b0 into main Mar 2, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants