Merge pull request #213 from hiwelo/accessibility-improvements

Accessibility improvements
This commit is contained in:
Pierre Rudloff 2019-04-19 23:11:39 +02:00 committed by GitHub
commit 9949a0d32b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 482 additions and 475 deletions

View file

@ -1,128 +1,120 @@
body {
background-color: #EBEBEB;
background-image:url('../img/fond.jpg');
font-family: 'Open Sans', sans-serif;
font-weight:400;
text-align:center;
background-color: #ebebeb;
background-image: url("../img/fond.jpg");
font-family: "Open Sans", sans-serif;
font-weight: 400;
text-align: center;
}
/* Header */
header {
padding:0;
position:absolute;
text-align:right;
top:0;
width:100%;
padding: 0;
position: absolute;
text-align: right;
top: 0;
width: 100%;
}
.social {
padding-right:21px;
padding-right: 21px;
}
header .social a {
background-position:0 0;
background-repeat:no-repeat;
float:right;
height:38px;
margin-left:13px;
margin-right:0;
margin-top:13px;
overflow:hidden;
position:relative;
background-position: 0 0;
background-repeat: no-repeat;
float: right;
height: 38px;
margin-left: 13px;
margin-right: 0;
margin-top: 13px;
overflow: hidden;
position: relative;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
width:38px;
width: 38px;
}
header a:focus,
header a:hover {
background-position:0 100%;
outline:none;
background-position: 0 100%;
outline: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.share {
background-image:url('../img/share.png');
background-image: url("../img/share.png");
}
.sharemask {
background-image:url('../img/sharemask.png');
background-position:top left;
background-repeat:no-repeat;
height:38px;
left:0;
position:absolute;
top:0;
width:38px;
z-index:10;
background-image: url("../img/sharemask.png");
background-position: top left;
background-repeat: no-repeat;
height: 38px;
left: 0;
position: absolute;
top: 0;
width: 38px;
z-index: 10;
}
.facebook {
background-image:url('../img/facebook.png');
background-image: url("../img/facebook.png");
}
.facebookmask {
background-image:url('../img/facebookmask.png');
background-position:top left;
background-repeat:no-repeat;
height:38px;
left:0;
position:absolute;
top:0;
width:38px;
z-index:10;
background-image: url("../img/facebookmask.png");
background-position: top left;
background-repeat: no-repeat;
height: 38px;
left: 0;
position: absolute;
top: 0;
width: 38px;
z-index: 10;
}
.twitter {
background-image:url('../img/twitter.png');
background-image: url("../img/twitter.png");
}
.twittermask {
background-image:url('../img/twittermask.png');
background-position:top left;
background-repeat:no-repeat;
height:38px;
left:0;
position:absolute;
top:0;
width:38px;
z-index:10;
background-image: url("../img/twittermask.png");
background-position: top left;
background-repeat: no-repeat;
height: 38px;
left: 0;
position: absolute;
top: 0;
width: 38px;
z-index: 10;
}
/* Footer */
footer {
background-image:url('../img/fondfooter.png');
background-position:top left;
background-repeat:repeat-x;
bottom:0;
color:#adadad;
padding-top:20px;
position:fixed;
text-align:center;
width:100%;
z-index:11;
background-image: url("../img/fondfooter.png");
background-position: top left;
background-repeat: repeat-x;
bottom: 0;
color: #adadad;
padding-top: 20px;
position: fixed;
text-align: center;
width: 100%;
z-index: 11;
}
.footer_wrapper {
height:28px;
height: 28px;
}
footer a{
color:#adadad;
text-decoration:none;
footer a {
color: #adadad;
text-decoration: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
@ -130,47 +122,42 @@ footer a{
footer a:focus,
footer a:hover {
color:#f2084a;
outline:none;
color: #f2084a;
outline: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
/* Home content */
.logo {
padding-bottom:55px;
padding-bottom: 55px;
}
.labelurl {
color:#3f3f3f;
font-size:19px;
position:relative;
color: #3f3f3f;
font-size: 19px;
position: relative;
}
.champs {
margin-bottom:70px;
margin-top:8px;
position:relative;
margin-bottom: 70px;
margin-top: 8px;
position: relative;
}
.downloadBtn {
background-color:#3A3A3A;
background-color: #3a3a3a;
border: 3px solid #a5a5a5;
border-radius:10px;
color:#dedede;
cursor:pointer;
display:inline-block;
font-weight:800;
border-radius: 10px;
color: #dedede;
cursor: pointer;
display: inline-block;
font-weight: 800;
padding: 12px 14px;
position:relative;
text-decoration:none;
position: relative;
text-decoration: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
@ -178,63 +165,62 @@ footer a:hover {
.downloadBtn:focus,
.downloadBtn:hover {
background-color:#f2084a;
outline:none;
background-color: #f2084a;
outline: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.downloadBtn::-moz-focus-inner {
border:none;
border: none;
}
.URLinput{
background-color:#fff;
.URLinput {
background-color: #fff;
border: 3px solid #a5a5a5;
border-radius:10px;
color:#3F3F3F;
font-weight:800;
margin-right:8px;
min-width:426px;
border-radius: 10px;
color: #3f3f3f;
font-weight: 800;
margin-right: 8px;
min-width: 426px;
padding: 12px 12px 12px 12px;
position:relative;
position: relative;
}
.URLinput:focus {
border-color:#3A3A3A;
border-color: #3a3a3a;
outline: none;
}
.URLinput:-webkit-input-placeholder{
color:#c1cfcf;
.URLinput:-webkit-input-placeholder {
color: #c1cfcf;
}
.URLinput:-moz-placeholder {
color:#c1cfcf;
color: #c1cfcf;
}
.combatiblelink {
background-image:url('../img/compatiblerouage.png');
background-position:0 100%;
background-repeat:no-repeat;
color:#a5a5a5;
padding-bottom:10px;
padding-left:41px;
padding-top:10px;
position:relative;
text-decoration:none;
background-image: url("../img/compatiblerouage.png");
background-position: 0 100%;
background-repeat: no-repeat;
color: #a5a5a5;
padding-bottom: 10px;
padding-left: 41px;
padding-top: 10px;
position: relative;
text-decoration: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
z-index:10;
z-index: 10;
}
.combatiblelink:focus,
.combatiblelink:hover {
background-position:0 0;
color:#f2084a;
outline:none;
background-position: 0 0;
color: #f2084a;
outline: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
@ -242,26 +228,26 @@ footer a:hover {
.bookmarklet {
border: 2px dotted;
color:gray;
padding:10px 30px;
position:relative;
text-decoration:none;
z-index:10;
color: gray;
padding: 10px 30px;
position: relative;
text-decoration: none;
z-index: 10;
}
.mp3 {
background-color:#cecece;
border-radius:6px;
color:#3f3f3f;
height:26px;
margin-top:12px;
position:relative;
text-align:left;
width:622px;
background-color: #cecece;
border-radius: 6px;
color: #3f3f3f;
height: 26px;
margin-top: 12px;
position: relative;
text-align: left;
width: 622px;
}
.mp3-inner {
padding:3px;
padding: 3px;
}
.audio:not(:checked),
@ -272,7 +258,7 @@ footer a:hover {
.audio:not(:checked) + label,
.audio:checked + label {
cursor: pointer;
line-height:20px;
line-height: 20px;
padding-left: 82px;
position: relative;
}
@ -280,7 +266,7 @@ footer a:hover {
.audio:checked + label:before,
.audio:not(:checked) + label:after,
.audio:checked + label:after {
content: '';
content: "";
position: absolute;
}
.audio:not(:checked) + label:before,
@ -288,13 +274,13 @@ footer a:hover {
background: #ffffff;
border-radius: 6px;
height: 20px;
left:0;
left: 0;
top: -1px;
-webkit-transition: background-color .2s;
-moz-transition: background-color .2s;
-ms-transition: background-color .2s;
-o-transition: background-color .2s;
transition: background-color .2s;
-webkit-transition: background-color 0.2s;
-moz-transition: background-color 0.2s;
-ms-transition: background-color 0.2s;
-o-transition: background-color 0.2s;
transition: background-color 0.2s;
width: 45px;
}
.audio:not(:checked) + label:after,
@ -304,21 +290,21 @@ footer a:hover {
height: 16px;
left: 2px;
top: 1px;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
width: 16px;
}
.audio:focus + label {
color:black;
color: black;
}
/* on checked */
.audio:checked + label:before {
background:#f2084a;
background: #f2084a;
}
.audio:checked + label:after {
background: #fff;
@ -332,44 +318,44 @@ footer a:hover {
border-radius: 15px;
font-size: 11px;
font-weight: bold;
height:20px;
height: 20px;
left: 3px;
line-height: 17px;
position: absolute;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
width: 45px;
}
.audio:not(:checked) + label .ui:before {
background-image:url('../img/mp3hover.png');
background-position:right top;
background-repeat:no-repeat;
background-image: url("../img/mp3hover.png");
background-position: right top;
background-repeat: no-repeat;
content: "no";
left: 0;
min-width:56px;
padding-left:23px;
padding-top:2px;
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
min-width: 56px;
padding-left: 23px;
padding-top: 2px;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
}
.audio:checked + label .ui:after {
background-image:url('../img/mp3.png');
background-position:right top;
background-repeat:no-repeat;
background-image: url("../img/mp3.png");
background-position: right top;
background-repeat: no-repeat;
color: #fff;
content: "yes";
-webkit-transition: all .2s;
-moz-transition: all .2s;
-ms-transition: all .2s;
-o-transition: all .2s;
transition: all .2s;
width:73px;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
-ms-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
width: 73px;
}
.seekOptions {
@ -382,7 +368,6 @@ footer a:hover {
display: block;
}
/* Playlists */
.playlist-entry .thumb {
float: left;
@ -413,126 +398,120 @@ footer a:hover {
font-size: 16px;
}
/* Supported websites list */
.logobis {
height:107px;
margin:0 auto 10px auto;
position:relative;
width:447px;
height: 107px;
margin: 0 auto 10px auto;
position: relative;
width: 447px;
}
.logocompatible {
background-image:url('../img/logocompatible.png');
background-position:0 0;
background-repeat:repeat-y;
display:block;
height:107px;
background-image: url("../img/logocompatible.png");
background-position: 0 0;
background-repeat: repeat-y;
display: block;
height: 107px;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
width:447px;
width: 447px;
}
.logocompatible:focus,
.logocompatible:hover {
background-position:0 100%;
outline:none;
background-position: 0 100%;
outline: none;
-webkit-transition: all 0.1s ease-in;
-moz-transition: all 0.1s ease-in;
-o-transition: all 0.1s ease-in;
}
.logocompatiblemask {
background-image:url('../img/logocompatiblemask.png');
background-position:0 100%;
background-repeat:no-repeat;
height:107px;
left:0;
position:absolute;
top:0;
width:447px;
z-index:10;
background-image: url("../img/logocompatiblemask.png");
background-position: 0 100%;
background-repeat: no-repeat;
height: 107px;
left: 0;
position: absolute;
top: 0;
width: 447px;
z-index: 10;
}
.titre {
color:#383838;
font-family: 'Open Sans', sans-serif;
font-size:48px;
font-weight:300;
color: #383838;
font-family: "Open Sans", sans-serif;
font-size: 48px;
font-weight: 300;
}
.tripleliste {
margin-left:auto;
margin-right:auto;
margin-top:80px;
position:relative;
width:800px;
margin-left: auto;
margin-right: auto;
margin-top: 80px;
position: relative;
width: 800px;
}
.tripleliste ul {
margin-bottom:1em;
margin-left:120px;
width:600px;
margin-bottom: 1em;
margin-left: 120px;
width: 600px;
}
.tripleliste ul li {
color:#383838;
float:left;
list-style-type:none;
position:relative;
text-align:left;
width:200px;
color: #383838;
float: left;
list-style-type: none;
position: relative;
text-align: left;
width: 200px;
}
html,
body {
height:100%;
margin:0;
height: 100%;
margin: 0;
}
.wrapper {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
display:table;
height:100%;
margin:auto;
padding-bottom:110px;
display: table;
height: 100%;
margin: auto;
padding-bottom: 110px;
}
.main {
display:table-cell;
vertical-align:middle;
display: table-cell;
vertical-align: middle;
}
.extractors {
padding-top:60px;
padding-top: 60px;
}
.extractors .wrapper {
padding-bottom:5em;
padding-bottom: 5em;
}
.logocompatible,
.social a {
font-size:0;
text-decoration:none;
font-size: 0;
text-decoration: none;
}
.social a {
color:#D1D1D1;
color: #d1d1d1;
}
.logocompatible {
color: #4F4F4F
color: #4f4f4f;
}
h1 {
margin:0;
margin: 0;
}
.error {
@ -540,19 +519,19 @@ h1 {
}
.error p {
text-align:justify;
text-align: justify;
}
.smaller {
font-size:smaller;
font-size: smaller;
}
.thumb {
max-width:700px;
max-width: 700px;
}
.format {
text-align:left;
text-align: left;
}
.best {
@ -560,7 +539,7 @@ h1 {
}
.monospace {
font-family:monospace;
font-family: monospace;
}
.customBitrate {
@ -591,7 +570,7 @@ h1 {
}
.supportedLocales li {
border-bottom: thin solid #E1E1E1;
border-bottom: thin solid #e1e1e1;
}
.supportedLocales li:last-child {
@ -629,20 +608,20 @@ h1 {
@media (max-width: 640px) {
.formats,
.thumb {
width:90%;
width: 90%;
}
.URLinput{
min-width:0;
.URLinput {
min-width: 0;
}
.logo {
max-width:330px;
max-width: 330px;
}
.logocompatible,
.logocompatible img {
max-width:447px;
max-width: 447px;
}
.logocompatible,
@ -650,18 +629,18 @@ h1 {
.champs,
.URLinput,
.mp3 {
height:auto;
margin:auto;
width:90%;
height: auto;
margin: auto;
width: 90%;
}
.logo {
margin-top:50px;
margin-top: 50px;
}
.logocompatible img {
height: auto;
width:100%;
width: 100%;
}
.downloadBtn {
@ -672,46 +651,46 @@ h1 {
}
footer {
display:none;
display: none;
}
.tripleliste ul,
.tripleliste {
margin-left:auto;
margin-top:auto;
width:auto;
margin-left: auto;
margin-top: auto;
width: auto;
}
.logocompatiblemask {
background:none;
background: none;
}
.logocompatible {
background-color:#4F4F4F;
background-image:none;
height:auto;
background-color: #4f4f4f;
background-image: none;
height: auto;
}
.logocompatiblemask,
.logobis {
width:auto;
width: auto;
}
.logocompatiblemask {
position:static;
position: static;
}
.logobis {
height:auto;
height: auto;
}
.titre {
margin:auto;
margin: auto;
}
.error p {
padding:0.5em;
text-align:left;
padding: 0.5em;
text-align: left;
}
.playlist-entry {
@ -723,7 +702,6 @@ h1 {
float: none;
margin-right: 0;
}
}
@media all and (display-mode: standalone) {
@ -731,3 +709,27 @@ h1 {
display: none;
}
}
/* Visually hidden, displays content only to screen-readers */
.sr-only {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
white-space: nowrap;
width: 1px;
}
.sr-only.focusable:active,
.sr-only.focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
white-space: normal;
width: auto;
}

View file

@ -1,25 +1,25 @@
{locale path="../i18n" domain="Alltube"}
<!Doctype HTML>
<!doctype html>
<html {if isset($locale)}lang="{$locale->getBcp47()}"{/if}>
<head>
<meta charset="UTF-8" />
<meta name=viewport content="width=device-width, initial-scale=1">
{if isset($description)}
<meta charset="UTF-8" />
<meta name=viewport content="width=device-width, initial-scale=1">
{if isset($description)}
<meta name="description" content="{$description|escape}" />
<meta name="twitter:description" content="{$description|escape}" />
<meta property="og:description" content="{$description|escape}" />
{/if}
<link rel="stylesheet" href="{base_url}/dist/main.css" />
<title>{$config->appName}{if isset($title)} - {$title|escape}{/if}</title>
<link rel="canonical" href="{$canonical}" />
<link rel="icon" href="{base_url}/img/favicon.png" />
<meta property="og:title" content="{$config->appName}{if isset($title)} - {$title|escape}{/if}" />
<meta property="og:image" content="{base_url}/img/logo.png" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{$config->appName}{if isset($title)} - {$title|escape}{/if}" />
<meta name="twitter:image" content="{base_url}/img/logo.png" />
<meta name="twitter:creator" content="@Tael67" />
<meta name="theme-color" content="#4F4F4F">
<link rel="manifest" href="{base_url}/resources/manifest.json" />
{/if}
<link rel="stylesheet" href="{base_url}/dist/main.css" />
<title>{$config->appName}{if isset($title)} - {$title|escape}{/if}</title>
<link rel="canonical" href="{$canonical}" />
<link rel="icon" href="{base_url}/img/favicon.png" />
<meta property="og:title" content="{$config->appName}{if isset($title)} - {$title|escape}{/if}" />
<meta property="og:image" content="{base_url}/img/logo.png" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{$config->appName}{if isset($title)} - {$title|escape}{/if}" />
<meta name="twitter:image" content="{base_url}/img/logo.png" />
<meta name="twitter:creator" content="@Tael67" />
<meta name="theme-color" content="#4F4F4F">
<link rel="manifest" href="{base_url}/resources/manifest.json" />
</head>
<body class="{$class}">

View file

@ -18,9 +18,12 @@
</div>
{/if}
<div class="social">
<a class="twitter" rel="noopener" href="http://twitter.com/home?status={base_url|urlencode}" title="{t}Share on Twitter{/t}" target="_blank">
<div class="twittermask"></div></a>
<a class="facebook" rel="noopener" href="https://www.facebook.com/sharer/sharer.php?u={base_url|urlencode}" title="{t}Share on Facebook{/t}" target="_blank"><div class="facebookmask"></div></a>
<a class="twitter" rel="noopener" href="http://twitter.com/home?status={base_url|urlencode}" title="{t}Share on Twitter{/t}" target="_blank" aria-label="{t}Share on Twitter{/t} {t}(opens a new window){/t}">
<div class="twittermask"></div>
</a>
<a class="facebook" rel="noopener" href="https://www.facebook.com/sharer/sharer.php?u={base_url|urlencode}" title="{t}Share on Facebook{/t}" target="_blank" aria-label="{t}Share on Facebook{/t} {t}(opens a new window){/t}">
<div class="facebookmask"></div>
</a>
</div>
</header>
<div class="wrapper">

View file

@ -25,8 +25,8 @@
{t}Audio only (MP3){/t}
</label>
<div class="seekOptions">
{t}From{/t} <input type="text" pattern="(\d+:)?(\d+:)?\d+(\.\d+)?" placeholder="HH:MM:SS" value="" name="from"/>
{t}to{/t} <input type="text" pattern="(\d+:)?(\d+:)?\d+(\.\d+)?" placeholder="HH:MM:SS" value="" name="to"/>
<label for="from">{t}From{/t}</label> <input type="text" pattern="(\d+:)?(\d+:)?\d+(\.\d+)?" placeholder="HH:MM:SS" value="" name="from" id="from" />
<label for="to">{t}to{/t}</label> <input type="text" pattern="(\d+:)?(\d+:)?\d+(\.\d+)?" placeholder="HH:MM:SS" value="" name="to" id="to" />
</div>
</div>
</div>

View file

@ -5,7 +5,8 @@
<h2>{t}This video is protected{/t}</h2>
<p>{t}You need a password in order to download this video.{/t}</p>
<form action="" method="POST">
<input class="URLinput" type="password" name="password" title="{t}Video password{/t}" />
<label class="sr-only" for="password">{t}Video password{/t}</label>
<input class="URLinput" type="password" name="password" id="password" />
<br/><br/>
<input class="downloadBtn" type="submit" value="{t}Download{/t}" />
</form>

View file

@ -83,14 +83,15 @@
{if $config->convertAdvanced}
<input type="checkbox" name="customConvert" id="customConvert"/>
<label for="customConvert">{t}Convert into a custom format:{/t}</label>
<select title="Custom format" name="customFormat">
<select title="Custom format" name="customFormat" aria-label="{t}Format to convert to{/t}">
{foreach $config->convertAdvancedFormats as $format}
<option>{$format}</option>
{/foreach}
</select>
{t}with{/t}
<input type="number" value="{$config->audioBitrate}" title="Custom bitrate" class="customBitrate"name="customBitrate" id="customBitrate" />
<label for="customBitrate">{t}kbit/s audio{/t}</label>
<label for="customBitrate" class="sr-only">{t}Bit rate{/t}</label>
<input type="number" value="{$config->audioBitrate}" title="Custom bitrate" class="customBitrate"name="customBitrate" id="customBitrate" aria-describedby="customBitrateUnit" />
<span id="customBitrateUnit">{t}kbit/s audio{/t}</span>
<br/><br/>
{/if}
<input class="downloadBtn" type="submit" value="{t}Download{/t}" /><br/>