diff --git a/KEYBOARD b/KEYBOARD new file mode 100644 index 00000000..d7832b8f --- /dev/null +++ b/KEYBOARD @@ -0,0 +1,39 @@ +# Use of the keyboard with Galene + +People wich are not able to use a mouse need to have other possibilities. + +Some user will use the keyboard in order to navigate to the galene Web +Interface and will use the Tab Key to select the wanted element and +other key as arrow up, down, space. + +User with visual impairement, may use a screenreader. + +For keyboard user we can use the following keys: + +- 'u' goto user list +- 'c' go to the chat input box +- 'r' raise, unraise hand +- 'm' mute, unmute + + +- Esc close contextual menu, close the setting, close the chat box, +close the user list + + +For the screenreader user, it is difficult to provide shortcuts, most +keys or keys combination are reserved from the OS the screenreader and +the browser. + +In order to offer a faster way for selecting the wanted element, we use +thw header navigation (h1, h2. h3). + +- The key 1 will got to the main Title of the page. +- The key 2 will allow to select one of the area user list, chat box or media area. +- The key 3 allow to navigate from message to message. +- The Tab and Esc key work as for the normal keyboard user + +Screenreader shall announce the error and warning textes issued by galene, +this is also implemented. + + + diff --git a/static/galene.css b/static/galene.css index 096a2fdf..e617720e 100644 --- a/static/galene.css +++ b/static/galene.css @@ -1,3 +1,9 @@ +button { + background: none; + border: 0; + color: inherit; +} + .nav-fixed .topnav { z-index: 1039; } @@ -109,7 +115,7 @@ display: none; } -.sidenav .user-logout a { +.sidenav .user-logout button { font-size: 1em; padding: 7px 0 0; color: #e4157e; @@ -117,7 +123,7 @@ line-height: .7; } -.sidenav .user-logout a:hover { +.sidenav .user-logout button:hover { color: #ab0659; } @@ -312,7 +318,6 @@ resize: none; overflow: hidden; padding: 5px; - outline: none; border: none; text-indent: 5px; box-shadow: none; @@ -467,7 +472,7 @@ textarea.form-reply { } .collapse-video { - left: 30px; + left: calc(-100vw); right: inherit; } @@ -864,14 +869,6 @@ h1 { overflow-y: hidden; } -#input:focus { - outline: none; -} - -#inputbutton:focus { - outline: none; -} - #resizer { width: 4px; margin-left: -4px; @@ -945,7 +942,7 @@ h1 { position: fixed; -webkit-transition: all .2s ease-out; transition: all .2s ease-out; - width: 0px; + width: 250px; /* on top of everything */ z-index: 2999; top: 0; @@ -953,9 +950,13 @@ h1 { height: calc(var(--vh, 1vh) * 100); overflow-x: hidden; overflow-y: hidden; + +} +.sidenav.invisible { + display: none; } -.sidenav a { +.sidenav button { padding: 10px 20px; text-decoration: none; font-size: 30px; @@ -965,7 +966,7 @@ h1 { line-height: 1.0; } -.sidenav a:hover { +.sidenav button:hover { color: #c2a4e0; } @@ -1112,8 +1113,12 @@ header .collapse:hover { /* Shrinking the sidebar from 200px to 0px */ #left-sidebar.active { - min-width: 0; - max-width: 0; + display: none; +} + +#left-sidebar:not(.active) { + display: block; + width:200px; } #left-sidebar .sidebar-header strong { @@ -1148,17 +1153,23 @@ header .collapse:hover { cursor: pointer; overflow: hidden; white-space: pre; + display: block; + width: 100%; + text-align: left; } -#left-sidebar.active #users > div { +#left-sidebar.active #users > button { padding: 10px 5px !important; } -#users > div:hover { +#users > button:hover { background-color: #f2f2f2; } +#users > button:focus, #users > button:focus-visible { + outline-offset: -2px; +} -#users > div::before { +#users > button::before { content: "\f111"; font-family: 'Font Awesome 6 Free'; color: #20b91e; @@ -1166,11 +1177,11 @@ header .collapse:hover { font-weight: 900; } -#users > div.user-status-raisehand::before { +#users > button.user-status-raisehand::before { content: "\f256"; } -#users > div::after { +#users > button::after { font-family: 'Font Awesome 6 Free'; color: #808080; margin-left: 5px; @@ -1178,11 +1189,11 @@ header .collapse:hover { float: right; } -#users > div.user-status-microphone::after { +#users > button.user-status-microphone::after { content: "\f130"; } -#users > div.user-status-camera::after { +#users > button.user-status-camera::after { content: "\f030"; } @@ -1300,7 +1311,7 @@ header .collapse:hover { display: block; } - .sidenav a {padding: 10px 10px;} + .sidenav button {padding: 10px 10px;} .sidenav-header h2 { line-height: 36px; diff --git a/static/galene.html b/static/galene.html index d76c09ec..16cc183d 100644 --- a/static/galene.html +++ b/static/galene.html @@ -29,9 +29,9 @@
@@ -85,15 +85,15 @@

Galène

- + -
+