Contributing to AccessiTech
First off, thank you for considering contributing to AccessiTech! It's people like you that make AccessiTech such a great tool for everyone.
Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct. Please read it to understand what behavior is expected in our community.
How Can I Contribute?
Reporting Bugs
This section guides you through submitting a bug report for AccessiTech. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before creating bug reports, please check the issue list as you might find that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as much detail as possible.
- Provide specific examples to demonstrate the steps. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples.
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
- Explain which behavior you expected to see instead and why.
- Include screenshots and animated GIFs which show you following the described steps and clearly demonstrate the problem.
- If the problem wasn't triggered by a specific action, describe what you were doing before the problem happened.
Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for AccessiTech, including completely new features and minor improvements to existing functionality.
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as much detail as possible.
- Provide specific examples to demonstrate the steps. Include copy/pasteable snippets which you use in those examples.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Include screenshots and animated GIFs which help you demonstrate the steps or point out the part of AccessiTech which the suggestion is related to.
- Explain why this enhancement would be useful to most AccessiTech users.
Pull Requests
The process described here has several goals:
- Maintain AccessiTech's quality
- Fix problems that are important to users
- Engage the community in working toward the best possible AccessiTech
- Enable a sustainable system for AccessiTech's maintainers to review contributions
Please follow these steps to have your contribution considered by the maintainers:
- Follow the styleguides
- After you submit your pull request, verify that all status checks are passing
While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
Setting Up the Development Environment
To set up the development environment, please follow these steps:
-
Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/AccessiTech.git cd AccessiTech -
Install dependencies
yarn install -
Start the development server
yarn dev -
Open your browser to http://localhost:5173
Styleguides
Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Consider starting the commit message with an applicable emoji:
- ๐ง
:wrench:when updating configuration files - ๐
:memo:when writing docs - ๐
:bug:when fixing a bug - โจ
:sparkles:when adding a new feature - โฟ
:wheelchair:when improving accessibility - ๐จ
:art:when improving the UI - โก
:zap:when improving performance - ๐งช
:test_tube:when adding tests
- ๐ง
JavaScript/TypeScript Styleguide
All JavaScript/TypeScript code is linted with ESLint and formatted with Prettier .
- Prefer TypeScript over JavaScript
- Use ES6+ features where appropriate
- Use functional components with hooks for React
- Follow the React Hooks rules
- Import statements should be ordered as follows:
- React/external libraries
- Internal modules/components
- Styles/assets
CSS/SCSS Styleguide
- Use SCSS for styling
- Follow the BEM (Block, Element, Modifier) naming convention
- Keep your selectors as shallow as possible
- Avoid using !important
Documentation Styleguide
- Use Markdown for documentation
- Keep READMEs updated as code changes
- Comment your code where necessary
- Document complex functions and components with JSDoc comments
Accessibility Guidelines
When contributing code that affects the user interface:
- Ensure WCAG 2.1 Level AA compliance
- Test with keyboard navigation
- Test with major screen readers (NVDA, VoiceOver, JAWS)
- Maintain color contrast ratios (minimum 4.5 for normal text, 3 for large text)
- Include appropriate ARIA labels and roles
- Add alt text for images and icons
- Ensure focus management for interactive elements
- Support text resizing up to 200%
- Respect user preferences (reduced motion, color scheme, etc.)
- Document accessibility features in component documentation
- Include accessibility testing steps in pull request descriptions
For detailed accessibility requirements, refer to our Accessibility Statement.
Additional Notes
Issue and Pull Request Labels
This section lists the labels we use to help us track and manage issues and pull requests.
bug- Issues related to unintended behavior or errorsdocumentation- Issues related to improving documentationenhancement- Issues related to new features or improvementsgood first issue- Issues that are good for newcomershelp wanted- Issues where we're looking for help from the communityaccessibility- Issues related to accessibility improvementsUI- Issues related to the user interfaceUX- Issues related to the user experiencetesting- Issues related to testingdependencies- Issues related to dependencies
Attribution
This Contributing guide is adapted from the Atom Contributing guide .