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 Display Github support button (#7343) 2019-07-02 12:06:25 +02:00
assets Add task to generate images from SVG and change to new logo (#2194) 2017-07-28 13:51:20 +08:00
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 Fix #8453 by making openssh listen on SSH_LISTEN_PORT not SSH_PORT (#8477) 2019-10-12 23:45:00 +08:00
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 Update gitignore list (#5258) 2018-11-03 18:06:09 -04:00
services Use templates for issue e-mail subject and body (#8329) 2019-11-07 21:34:28 +08:00
snap Use vfsgen instead of go-bindata (#7080) 2019-06-03 00:43:47 +03:00
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 Add changelog config file for generate changelog (#2461) 2017-09-04 13:07:57 +03:00
.drone.yml use go 1.13 (#8088) 2019-09-12 14:58:32 +03:00
.editorconfig Add autoprefixer to css build (#6029) 2019-02-11 01:13:30 -05:00
.eslintignore a11y: Improve accessibility of dropdown menus (#8638) 2019-11-08 12:33:21 -05:00
.eslintrc convert all js var to let/const (#7464) 2019-07-16 09:51:46 +08:00
.gitattributes ignore static files statstics for linguist 2016-12-27 16:49:25 +01:00
.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 refactor: ignore LGTM from author of pull request. (#3283) 2018-01-02 06:13:49 -06:00
.npmrc add 'npm' and 'npm-update' make targets and lockfile (#7246) 2019-06-18 22:59:47 -04:00
.revive.toml refactor: replace lint to revive (#5422) 2018-12-03 09:28:46 -05:00
.stylelintrc replace lesshint with stylelint (#7305) 2019-06-27 08:36:36 +02:00
BSDmakefile Add BSDmakefile to prevent errors when `make` is called under FreeBSD (#4446) 2018-07-16 20:45:51 +02:00
CHANGELOG.md Changelog 1.9.5 (#8753) (#8756) (#8758) 2019-10-30 17:22:20 -04:00
CONTRIBUTING.md Correct some outdated statements in the contributing guidelines (#8612) 2019-10-21 19:45:53 -04:00
DCO follow the advisor: add DCO and some improvements 2016-11-04 16:43:41 +08:00
Dockerfile use go 1.13 (#8088) 2019-09-12 14:58:32 +03:00
LICENSE Fix typo 2016-11-08 08:42:05 +01:00
MAINTAINERS Add myself as maintainer (#8708) 2019-10-27 16:45:21 -04:00
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 Add golangci (#6418) 2019-06-12 15:41:28 -04:00
package-lock.json Update JS dependencies (#8051) 2019-09-02 17:02:53 -04:00
package.json Update JS dependencies (#8051) 2019-09-02 17:02:53 -04:00
tools.go Use vendored go-swagger (#8087) 2019-09-04 22:53:54 +03:00

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