Go to file
Jookia 1274ad864e a11y: Improve accessibility of dropdown menus (#8638)
* js: Import Semantic-UI's dropdown.js (version 2.3.1)

* js: Set tabindex=-1 on dropdown items

Setting tabindex=-1 on focusable elements within dropdown menus allows
the user to treat dropdown menus as a single focusable item with its own
internal navigation using arrow keys.

* js: Don't use jQuery to click menu items

Menu items are often <a> elements, which jQuery refuses to trigger click
events on. Instead it just bubbles up to the menu.

Using HTMLElement's click method fixes this and makes menu items
clickable from the keyboard using dropdown menus.

* js: Set correct ARIA 1.1 roles on dropdown menus

Setting role= makes assistive technology aware there is a widget here.
In this case, Orca will now exit browse mode and allow us to capture
keydown events when focused on a dropdown menu. It will also inform the
user that there's a menu focused.

Since dropdowns can be used in multiple elements each with different
ARIA roles, a guessRole method is used to find the correct role.
All roles I consider possible are listed, but only menu is implemented.

* js: Set aria-expanded when dropdown menus show and hide

This is deliberately done before the transition finishes so that screen
readers get immediate feedback.

* js: Set aria-label or aria-labelledby on dropdown menus

This makes dropdown menu buttons screen reader accessible.

aria-labelledby refers to an element using an ID, so the chosen labels
are now assigned a unique ID- This ID is not stable, do not refer to it
with user scripts.

* js: Set aria-activedescendant on dropdown menus

As the menus grab focus and navigate by tracking a 'selected' div class,
assistive technology has no idea that what the current selection is.

Assign IDs to each menu item and set aria-activedescendant to the ID of
the currently selected menu item.

When the menu is unfocused, remove aria-activedescendant- This isn't
neccessary but in my experience it triggers Orca to remind the user of
their current selection when re-focusing the menu.

* Makefile: Make eslint ignore semantic.dropdown.js

This file is taken from Semantic UI which isn't linted upstream.
Ignore it as we won't fix these issues.

* js: Add version note to semantic.dropdown.js

* Add Md5 AppVer to templates/base/footer.tmpl

Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>

* Add Md5 AppVer to templates/pwa/serviceworker_js.tmpl

Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>

* semantic.dropdown.js -> semantic.dropdown.custom.js

* Use eslintignore

* remove bogus submodule
2019-11-08 12:33:21 -05:00
.github
assets
cmd Adjust the must-change-password help (#8755) 2019-10-30 18:28:14 +00:00
contrib Explicity indicate the socket unit to use the service unit "gitea.service" (#8804) 2019-11-04 12:42:30 +08:00
custom/conf Allow cross-repository dependencies on issues (#7901) 2019-10-31 13:06:10 +08:00
docker
docs Use templates for issue e-mail subject and body (#8329) 2019-11-07 21:34:28 +08:00
integrations Add team option to grant rights for all organization repositories (#8688) 2019-11-06 11:37:14 +02:00
models Split sendCreateCommentAction as two parts, one for update comment related informations, another for actions (#8784) 2019-11-06 15:39:29 +02:00
modules Fix count for commit graph last page (#8843) 2019-11-07 20:09:51 +02:00
options [skip ci] Updated translations via Crowdin 2019-11-07 18:33:04 +00:00
public a11y: Improve accessibility of dropdown menus (#8638) 2019-11-08 12:33:21 -05:00
routers Fix count for commit graph last page (#8843) 2019-11-07 20:09:51 +02:00
scripts
services Use templates for issue e-mail subject and body (#8329) 2019-11-07 21:34:28 +08:00
snap
templates a11y: Improve accessibility of dropdown menus (#8638) 2019-11-08 12:33:21 -05:00
vendor Update go-org to optimize code (#8824) 2019-11-05 16:39:03 +08:00
.changelog.yml
.drone.yml
.editorconfig
.eslintignore a11y: Improve accessibility of dropdown menus (#8638) 2019-11-08 12:33:21 -05:00
.eslintrc
.gitattributes
.gitignore add __debug_bin file to gitignore (#8740) 2019-10-30 14:39:35 +00:00
.golangci.yml Add API for Issue set Subscription (#8729) 2019-11-02 23:27:49 +08:00
.lgtm
.npmrc
.revive.toml
.stylelintrc
BSDmakefile
CHANGELOG.md Changelog 1.9.5 (#8753) (#8756) (#8758) 2019-10-30 17:22:20 -04:00
CONTRIBUTING.md
DCO
Dockerfile
LICENSE
MAINTAINERS
Makefile Add API for Issue set Subscription (#8729) 2019-11-02 23:27:49 +08:00
README.md README: Update Screenshots and Badges in ZH (#8813) 2019-11-04 19:12:58 -05:00
README_ZH.md README: Update Screenshots and Badges in ZH (#8813) 2019-11-04 19:12:58 -05:00
go.mod Update go-org to optimize code (#8824) 2019-11-05 16:39:03 +08:00
go.sum Update go-org to optimize code (#8824) 2019-11-05 16:39:03 +08:00
main.go
package-lock.json
package.json
tools.go

README.md

简体中文

logo Gitea - Git with a cup of tea

Build Status Join the Discord chat at https://discord.gg/NsatcWJ codecov Go Report Card GoDoc GitHub release Help Contribute to Open Source Become a backer/sponsor of gitea License: MIT Crowdin

Purpose

The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. Want to try it before doing anything else? Do it with the online demo! This project has been forked from Gogs since 2016.11 but changed a lot.

Building

From the root of the source tree, run:

TAGS="bindata" make generate all

More info: https://docs.gitea.io/en-us/install-from-source/

Using

./gitea web

NOTE: If you're interested in using our APIs, we have experimental support with documentation.

Contributing

Expected workflow is: Fork -> Patch -> Push -> Pull Request

NOTES:

  1. YOU MUST READ THE CONTRIBUTORS GUIDE BEFORE STARTING TO WORK ON A PULL REQUEST.
  2. If you have found a vulnerability in the project, please write privately to security@gitea.io. Thanks!

Further information

For more information and instructions about how to install Gitea, please look at our documentation. If you have questions that are not covered by the documentation, you can get in contact with us on our Discord server, or forum!

Authors

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

FAQ

How do you pronounce Gitea?

Gitea is pronounced /ɡɪti:/ as in "gi-tea" with a hard g.

Why is this not hosted on a Gitea instance?

We're working on it.

License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

Screenshots

Looking for an overview of the interface? Check it out!

Dashboard User Profile Global Issues
Branches Web Editor Activity
New Migration Migrating Pull Request View
Pull Request Dark Diff Review Dark Diff Dark