diff --git a/.pa11yci.json b/.pa11yci.json
new file mode 100644
index 000000000..c33396dae
--- /dev/null
+++ b/.pa11yci.json
@@ -0,0 +1,103 @@
+{
+ "standard": "WCAG2AA",
+ "level": "error",
+ "defaults": {
+ "useIncognitoBrowserContext": false,
+ "timeout": 500000,
+ "wait": 5000,
+ "ignore" : [
+ "WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail",
+ "WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail"
+ ],
+
+ "viewport": {
+ "width": 1280,
+ "height": 1024
+ }
+ },
+ "urls": [
+ {
+ "__NOTE" : "this should always be FIRST (if browser context is preserved)",
+ "url": "https://snipe-it.test/login",
+ "actions": [
+ "navigate to https://snipe-it.test/login",
+ "screen capture tests/pa11y/login.png",
+ "set field input[name='username'] to admin",
+ "set field input[name='password'] to password",
+ "click element button[type=submit]",
+ "wait for url to be https://snipe-it.test/",
+ "screen capture tests/pa11y/dashboard.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/admin",
+ "actions" : [
+ "navigate to https://snipe-it.test/admin",
+ "screen capture tests/pa11y/admin-settings.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/hardware/create",
+ "actions" : [
+ "navigate to https://snipe-it.test/hardware/create",
+ "screen capture tests/pa11y/asset-create.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/hardware",
+ "actions" : [
+ "navigate to https://snipe-it.test/hardware",
+ "screen capture tests/pa11y/asset-list.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/hardware/1",
+ "actions" : [
+ "navigate to https://snipe-it.test/hardware/1",
+ "screen capture tests/pa11y/asset-detail.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/account/view-assets",
+ "actions" : [
+ "navigate to https://snipe-it.test/account/view-assets",
+ "screen capture tests/pa11y/profile.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/licences",
+ "actions" : [
+ "navigate to https://snipe-it.test/licenses",
+ "screen capture tests/pa11y/license-list.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/licences/create",
+ "actions" : [
+ "navigate to https://snipe-it.test/licenses/create",
+ "screen capture tests/pa11y/license-create.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/licences/1",
+ "actions" : [
+ "navigate to https://snipe-it.test/licenses/1",
+ "screen capture tests/pa11y/license-view.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/accessories",
+ "actions" : [
+ "navigate to https://snipe-it.test/accessories",
+ "screen capture tests/pa11y/accessory-list.png"
+ ]
+ },
+ {
+ "url" : "https://snipe-it.test/accessories/create",
+ "actions" : [
+ "navigate to https://snipe-it.test/accessories/create",
+ "screen capture tests/pa11y/accessory-create.png"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pa11y.js b/pa11y.js
new file mode 100644
index 000000000..4d5a1dbba
--- /dev/null
+++ b/pa11y.js
@@ -0,0 +1,24 @@
+const pa11y = require('pa11y');
+
+pa11y('http://snipe-it.test', {
+ standard: "WCAG2AA",
+ level: "error",
+ defaults: {
+ "timeout": 500000,
+ "wait": 2000,
+ "ignore": [
+ "WCAG2AA.Principle1.Guideline1_4.1_4_3.G18",
+ "WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail",
+ ],
+ "viewport": {
+ "width": 1280,
+ "height": 1024
+ },
+ },
+ actions: [
+ 'set field #username to admin',
+ 'set field #password to password',
+ 'click element #submit',
+ 'wait for path to be /',
+ ]
+});
\ No newline at end of file
diff --git a/public/css/build/app.css b/public/css/build/app.css
index 1418aece1..ac0038d91 100644
--- a/public/css/build/app.css
+++ b/public/css/build/app.css
@@ -1448,4 +1448,8 @@ legend.highlight {
fieldset.bottom-padded {
padding-bottom: 20px;
}
+caption.tableCaption {
+ font-size: 18px;
+ padding-left: 8px;
+}
diff --git a/public/css/build/overrides.css b/public/css/build/overrides.css
index 799ed56ec..3d13f0b14 100644
--- a/public/css/build/overrides.css
+++ b/public/css/build/overrides.css
@@ -1079,4 +1079,8 @@ legend.highlight {
fieldset.bottom-padded {
padding-bottom: 20px;
}
+caption.tableCaption {
+ font-size: 18px;
+ padding-left: 8px;
+}
diff --git a/public/css/dist/all.css b/public/css/dist/all.css
index abf63504f..daf7afc0c 100644
--- a/public/css/dist/all.css
+++ b/public/css/dist/all.css
@@ -22783,6 +22783,10 @@ legend.highlight {
fieldset.bottom-padded {
padding-bottom: 20px;
}
+caption.tableCaption {
+ font-size: 18px;
+ padding-left: 8px;
+}
.select2-container {
@@ -24348,4 +24352,8 @@ legend.highlight {
fieldset.bottom-padded {
padding-bottom: 20px;
}
+caption.tableCaption {
+ font-size: 18px;
+ padding-left: 8px;
+}
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index aba6e5e76..0bf335fc7 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -2,8 +2,8 @@
"/js/build/app.js": "/js/build/app.js?id=19253af36b58ed3fb6770c7bb944f079",
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=06c13e817cc022028b3f4a33c0ca303a",
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=79aa889a1a6691013be6c342ca7391cd",
- "/css/build/overrides.css": "/css/build/overrides.css?id=7a32a6189e49ee50acd00a43a8b70362",
- "/css/build/app.css": "/css/build/app.css?id=0e00c581b472b65d800121881b835994",
+ "/css/build/overrides.css": "/css/build/overrides.css?id=c05ff69c5fa7cae36e9235c2f1521a55",
+ "/css/build/app.css": "/css/build/app.css?id=b9bb079547d79412ea5a5127855c41fb",
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=4ea0068716c1bb2434d87a16d51b98c9",
"/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690",
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=ea22079836a432d7f46a5d390c445e13",
@@ -19,7 +19,7 @@
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=a82b065847bf3cd5d713c04ee8dc86c6",
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=6ea836d8126de101081c49abbdb89417",
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb",
- "/css/dist/all.css": "/css/dist/all.css?id=f5373a88aa3482e9496e54ab1c103ec8",
+ "/css/dist/all.css": "/css/dist/all.css?id=1845b570a7e2d03b331998c453d30361",
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
"/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",
diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less
index 63611370c..aae91cf08 100644
--- a/resources/assets/less/overrides.less
+++ b/resources/assets/less/overrides.less
@@ -1205,3 +1205,9 @@ legend.highlight {
fieldset.bottom-padded {
padding-bottom: 20px;
}
+
+caption.tableCaption {
+ font-size: 18px;
+ padding-left: 8px;
+}
+
diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php
index 42ce556bd..68749ae2a 100755
--- a/resources/views/account/view-assets.blade.php
+++ b/resources/views/account/view-assets.blade.php
@@ -9,6 +9,7 @@
{{-- Account page content --}}
@section('content')
+
@if ($acceptances = \App\Models\CheckoutAcceptance::forUser(Auth::user())->pending()->count())
@@ -32,20 +33,23 @@
-
-
-
- {{ trans('admin/users/general.info') }}
+
+
+
+
+ {{ trans('admin/users/general.info') }}
+
-
-
-
-
- {{ trans('general.assets') }}
- {!! ($user->assets()->AssetsForShow()->count() > 0 ) ? ''.number_format($user->assets()->AssetsForShow()->count()).'' : '' !!}
+
+
+
+
+
+ {{ trans('general.assets') }}
+ {!! ($user->assets()->AssetsForShow()->count() > 0 ) ? ''.number_format($user->assets()->AssetsForShow()->count()).'' : '' !!}
@@ -56,7 +60,7 @@
{{ trans('general.licenses') }}
- {!! ($user->licenses->count() > 0 ) ? ''.number_format($user->licenses->count()).'' : '' !!}
+ {!! ($user->licenses->count() > 0 ) ? ''.number_format($user->licenses->count()).'' : '' !!}
@@ -67,18 +71,18 @@
{{ trans('general.accessories') }}
- {!! ($user->accessories->count() > 0 ) ? ''.number_format($user->accessories->count()).'' : '' !!}
+ {!! ($user->accessories->count() > 0 ) ? ''.number_format($user->accessories->count()).'' : '' !!}
-
-
-
+
+
+
{{ trans('general.consumables') }}
- {!! ($user->consumables->count() > 0 ) ? ''.number_format($user->consumables->count()).'' : '' !!}
+ {!! ($user->consumables->count() > 0 ) ? ''.number_format($user->consumables->count()).'' : '' !!}
@@ -93,13 +97,8 @@
-
-
-
-
-
-
->gravatar() }})
+
@can('self.profile')
@@ -376,35 +375,31 @@
-
+
-
-
- @if ($user->id)
-
- @endif
-
-
-
-
+
+
+ {{ trans('general.licenses') }}
+
+
{{ trans('general.name') }} |
@@ -593,12 +592,11 @@
@endforeach
-
-
username) }}-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","download","icon"]
}'>
+
+
+ {{ trans('general.accessories') }}
+
+
+
{{ trans('general.name') }} |
@@ -644,12 +648,11 @@
@endforeach
-
-
username) }}-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","download","icon"]
}'>
+
+
+ {{ trans('general.consumables') }}
+
+
{{ trans('general.name') }} |
@@ -693,8 +701,10 @@
@endforeach
-
+
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
index 0a3c93333..69cc23e44 100755
--- a/resources/views/auth/login.blade.php
+++ b/resources/views/auth/login.blade.php
@@ -54,7 +54,8 @@
-