Adds accessible nav elements for nested pages Why are these changes being introduced: * The current links to show/hide the nested pages use a visual only svg image with no accessible affordance provided so screenreaders will not be able to provide appropriate context for users as to what they should expect when clicking these links * You can see the problem by running a tool like ANDI on the current main branch of this repository and then running it again on this branch. ANDI shows what a screenreader would read. * You can also use a tool like Voiceover to hear the importance of what this introduces to users that use that technology. Before this change, Voiceover would read all of these navigation links as "link image just-the-docs" but with this change it will read `link image toggle links in <categoryName> category` Relevant ticket(s): * This was discussed as part of the larger WCAG compliance ticket https://github.com/just-the-docs/just-the-docs/issues/566 How does this address that need: * This adds an `aria-label` to the link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label Document any side effects to this change: It appears it might be prefereable to use `aria-labelledby` whenever possible, but from what I can tell these links are just the visual cue of the svg with no other affordance given to users to understand what they'll do so there is nothing to point `aria-labelledby` at. An `svg` title was considered, but in reading more about it it seemed like `aria-label` was more appropriate as it puts the label on the `a` rather than the `svg` which feels more accurate. * https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby Co-authored-by: Matt Wang <matt@matthewwang.me>
mermaid
: refactor config to use mermaid_config.js
include, only require mermaid.version
in _config.yml
(#909)
Just the Docs
A modern, highly customizable, and responsive Jekyll theme for documentation with built-in search.
Easily hosted on GitHub Pages with few dependencies.
Installation
via GitHub Pages remote theme
The quickiest way to use Just The Docs is to use GitHub pages remote theme feature in your _config.yml
file:
remote_theme: just-the-docs/just-the-docs
via RubyGems:
Alternatively you can install it as a Ruby Gem.
Add this line to your Jekyll site's Gemfile:
gem "just-the-docs"
And add this line to your Jekyll site's _config.yml
:
theme: just-the-docs
And then execute:
$ bundle
Or install it yourself as:
$ gem install just-the-docs
Alternatively, you can run it inside Docker while developing your site
$ docker-compose up
Usage
View the documentation for usage information.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/just-the-docs/just-the-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
Submitting code changes:
- Open a Pull Request
- Ensure all CI tests pass
- Await code review
- Bump the version number in
just-the-docs.gemspec
andpackage.json
according to semantic versioning.
Design and development principles of this theme:
- As few dependencies as possible
- No build script needed
- First class mobile experience
- Make the content shine
Development
To set up your environment to develop this theme, run bundle install
.
A modern devcontainer configuration for VSCode is included.
Your theme is set up just like a normal Jekyll site! To test your theme, run bundle exec jekyll serve
and open your browser at http://localhost:4000
. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
When the theme is released, only the files in _layouts
, _includes
, and _sass
tracked with Git will be released.
License
The theme is available as open source under the terms of the MIT License.