Small accessibility improvements

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe 2025-04-23 15:53:41 +01:00
parent f0b18042f9
commit e3f511ec7c
11 changed files with 147 additions and 76 deletions

View file

@ -63,6 +63,41 @@
"navigate to https://snipe-it.test/account/view-assets", "navigate to https://snipe-it.test/account/view-assets",
"screen capture tests/pa11y/profile.png" "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"
]
} }
] ]
} }

View file

@ -1448,4 +1448,8 @@ legend {
fieldset { fieldset {
padding-bottom: 20px; padding-bottom: 20px;
} }
caption.tableCaption {
font-size: 18px;
padding-left: 8px;
}

View file

@ -1079,4 +1079,8 @@ legend {
fieldset { fieldset {
padding-bottom: 20px; padding-bottom: 20px;
} }
caption.tableCaption {
font-size: 18px;
padding-left: 8px;
}

View file

@ -22783,6 +22783,10 @@ legend {
fieldset { fieldset {
padding-bottom: 20px; padding-bottom: 20px;
} }
caption.tableCaption {
font-size: 18px;
padding-left: 8px;
}
.select2-container { .select2-container {
@ -24348,4 +24352,8 @@ legend {
fieldset { fieldset {
padding-bottom: 20px; padding-bottom: 20px;
} }
caption.tableCaption {
font-size: 18px;
padding-left: 8px;
}

View file

@ -2,8 +2,8 @@
"/js/build/app.js": "/js/build/app.js?id=19253af36b58ed3fb6770c7bb944f079", "/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/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/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=79aa889a1a6691013be6c342ca7391cd",
"/css/build/overrides.css": "/css/build/overrides.css?id=23b8695f142b81daac944f9e04651c0c", "/css/build/overrides.css": "/css/build/overrides.css?id=c05ff69c5fa7cae36e9235c2f1521a55",
"/css/build/app.css": "/css/build/app.css?id=a48ed31ea3de97ccacd8c082c3170419", "/css/build/app.css": "/css/build/app.css?id=b9bb079547d79412ea5a5127855c41fb",
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=4ea0068716c1bb2434d87a16d51b98c9", "/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.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", "/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.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-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/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb",
"/css/dist/all.css": "/css/dist/all.css?id=ffee9ce5396c4880dc0b461586638497", "/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.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.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", "/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",

View file

@ -1205,3 +1205,9 @@ legend {
fieldset { fieldset {
padding-bottom: 20px; padding-bottom: 20px;
} }
caption.tableCaption {
font-size: 18px;
padding-left: 8px;
}

View file

@ -9,6 +9,7 @@
{{-- Account page content --}} {{-- Account page content --}}
@section('content') @section('content')
@if ($acceptances = \App\Models\CheckoutAcceptance::forUser(Auth::user())->pending()->count()) @if ($acceptances = \App\Models\CheckoutAcceptance::forUser(Auth::user())->pending()->count())
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@ -32,20 +33,23 @@
<li class="active"> <li class="active">
<a href="#details" data-toggle="tab"> <a href="#details" data-toggle="tab">
<span class="hidden-lg hidden-md"> <span class="hidden-lg hidden-md" aria-hidden="true">
<i class="fas fa-info-circle fa-2x"></i> <i class="fas fa-info-circle fa-2x"></i>
</span> </span>
<span class="hidden-xs hidden-sm">{{ trans('admin/users/general.info') }}</span> <span class="hidden-xs hidden-sm">
{{ trans('admin/users/general.info') }}
</span>
</a> </a>
</li> </li>
<li> <li>
<a href="#asset" data-toggle="tab"> <a href="#assets" data-toggle="tab">
<span class="hidden-lg hidden-md"> <span class="hidden-lg hidden-md" aria-hidden="true">
<x-icon type="assets" class="fa-2x" /> <x-icon type="assets" class="fa-2x" />
</span> </span>
<span class="hidden-xs hidden-sm">{{ trans('general.assets') }} <span class="hidden-xs hidden-sm">
{!! ($user->assets()->AssetsForShow()->count() > 0 ) ? '<badge class="badge badge-secondary">'.number_format($user->assets()->AssetsForShow()->count()).'</badge>' : '' !!} {{ trans('general.assets') }}
{!! ($user->assets()->AssetsForShow()->count() > 0 ) ? '<span class="badge badge-secondary">'.number_format($user->assets()->AssetsForShow()->count()).'</span>' : '' !!}
</span> </span>
</a> </a>
</li> </li>
@ -56,7 +60,7 @@
<i class="far fa-save fa-2x"></i> <i class="far fa-save fa-2x"></i>
</span> </span>
<span class="hidden-xs hidden-sm">{{ trans('general.licenses') }} <span class="hidden-xs hidden-sm">{{ trans('general.licenses') }}
{!! ($user->licenses->count() > 0 ) ? '<badge class="badge badge-secondary">'.number_format($user->licenses->count()).'</badge>' : '' !!} {!! ($user->licenses->count() > 0 ) ? '<span class="badge badge-secondary">'.number_format($user->licenses->count()).'</span>' : '' !!}
</span> </span>
</a> </a>
</li> </li>
@ -67,18 +71,18 @@
<x-icon type="accessories" class="fa-2x" /> <x-icon type="accessories" class="fa-2x" />
</span> </span>
<span class="hidden-xs hidden-sm">{{ trans('general.accessories') }} <span class="hidden-xs hidden-sm">{{ trans('general.accessories') }}
{!! ($user->accessories->count() > 0 ) ? '<badge class="badge badge-secondary">'.number_format($user->accessories->count()).'</badge>' : '' !!} {!! ($user->accessories->count() > 0 ) ? '<span class="badge badge-secondary">'.number_format($user->accessories->count()).'</span>' : '' !!}
</span> </span>
</a> </a>
</li> </li>
<li> <li>
<a href="#consumables" data-toggle="tab"> <a href="#consumables" data-toggle="tab">
<span class="hidden-lg hidden-md"> <span class="hidden-lg hidden-md" aria-hidden="true">
<i class="fas fa-tint fa-2x"></i> <x-icon type="consumables" class="fa-2x" />
</span> </span>
<span class="hidden-xs hidden-sm">{{ trans('general.consumables') }} <span class="hidden-xs hidden-sm">{{ trans('general.consumables') }}
{!! ($user->consumables->count() > 0 ) ? '<badge class="badge badge-secondary">'.number_format($user->consumables->count()).'</badge>' : '' !!} {!! ($user->consumables->count() > 0 ) ? '<span class="badge badge-secondary">'.number_format($user->consumables->count()).'</span>' : '' !!}
</span> </span>
</a> </a>
</li> </li>
@ -93,11 +97,6 @@
<!-- Start button column --> <!-- Start button column -->
<div class="col-md-3 col-xs-12 col-sm-push-9"> <div class="col-md-3 col-xs-12 col-sm-push-9">
<div class="col-md-12 text-center">
</div>
<div class="col-md-12 text-center"> <div class="col-md-12 text-center">
<img src="{{ $user->present()->gravatar() }}" class=" img-thumbnail hidden-print" style="margin-bottom: 20px;" alt="{{ $user->present()->fullName() }}" alt="User avatar"> <img src="{{ $user->present()->gravatar() }}" class=" img-thumbnail hidden-print" style="margin-bottom: 20px;" alt="{{ $user->present()->fullName() }}" alt="User avatar">
</div> </div>
@ -376,35 +375,31 @@
</div> <!--/.row--> </div> <!--/.row-->
</div><!-- /.tab-pane --> </div><!-- /.tab-pane -->
<div class="tab-pane" id="asset"> <div class="tab-pane" id="assets">
<!-- checked out assets table --> <!-- checked out assets table -->
<table
<div class="table table-responsive"> data-toolbar="#userAssetToolbar"
@if ($user->id) data-pagination="true"
<div class="box-header with-border"> data-id-table="userAssets"
</div><!-- /.box-header --> data-search="true"
@endif data-side-pagination="client"
<!-- checked out assets table --> data-show-columns="true"
<div class="table-responsive"> data-show-export="true"
data-show-footer="true"
<table data-sort-order="asc"
data-cookie="true" id="userAssets"
data-cookie-id-table="userAssets" class="table table-striped snipe-table"
data-pagination="true" data-show-fullscreen="true"
data-id-table="userAssets" data-export-options='{
data-search="true"
data-side-pagination="client"
data-show-columns="true"
data-show-export="true"
data-show-footer="true"
data-sort-order="asc"
id="userAssets"
class="table table-striped snipe-table"
data-export-options='{
"fileName": "my-assets-{{ date('Y-m-d') }}", "fileName": "my-assets-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"] "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'> }'>
<caption id="userAssetToolbar" class="tableCaption">
{{ trans('general.assets') }}
</caption>
<thead> <thead>
<tr> <tr>
<th class="col-md-1"> <th class="col-md-1">
@ -420,7 +415,7 @@
{{ trans('admin/hardware/table.asset_tag') }} {{ trans('admin/hardware/table.asset_tag') }}
</th> </th>
<th class="col-md-2" data-switchable="true" data-visible="false"> <th class="col-md-2" data-switchable="true" data-visible="false">
{{ trans('general.name') }} {{ trans('general.name') }}fljg
</th> </th>
<th class="col-md-2" data-switchable="true" data-visible="true"> <th class="col-md-2" data-switchable="true" data-visible="true">
{{ trans('admin/hardware/table.asset_model') }} {{ trans('admin/hardware/table.asset_model') }}
@ -530,13 +525,11 @@
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</div>
</div> <!-- .table-responsive-->
</div><!-- /asset --> </div><!-- /asset -->
<div class="tab-pane" id="licenses"> <div class="tab-pane" id="licenses">
<div class="table-responsive">
<table <table
data-toolbar="#userLicensesToolbar"
data-cookie-id-table="userLicenses" data-cookie-id-table="userLicenses"
data-pagination="true" data-pagination="true"
data-id-table="userLicenses" data-id-table="userLicenses"
@ -547,11 +540,17 @@
data-show-refresh="false" data-show-refresh="false"
data-sort-order="asc" data-sort-order="asc"
id="userLicenses" id="userLicenses"
data-show-fullscreen="true"
class="table table-striped snipe-table" class="table table-striped snipe-table"
data-export-options='{ data-export-options='{
"fileName": "my-licenses-{{ date('Y-m-d') }}", "fileName": "my-licenses-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"] "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'> }'>
<caption id="userLicensesToolbar" class="tableCaption">
{{ trans('general.licenses') }}
</caption>
<thead> <thead>
<tr> <tr>
<th class="col-md-2">{{ trans('general.name') }}</th> <th class="col-md-2">{{ trans('general.name') }}</th>
@ -593,12 +592,11 @@
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</div> <!-- .table-responsive-->
</div> </div>
<div class="tab-pane" id="accessories"> <div class="tab-pane" id="accessories">
<div class="table-responsive">
<table <table
data-toolbar="#userAccessoryToolbar"
data-cookie-id-table="userAccessoryTable" data-cookie-id-table="userAccessoryTable"
data-id-table="userAccessoryTable" data-id-table="userAccessoryTable"
id="userAccessoryTable" id="userAccessoryTable"
@ -617,6 +615,12 @@
"fileName": "export-accessory-{{ str_slug($user->username) }}-{{ date('Y-m-d') }}", "fileName": "export-accessory-{{ str_slug($user->username) }}-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","download","icon"] "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","download","icon"]
}'> }'>
<caption id="userAccessoryToolbar" class="tableCaption">
{{ trans('general.accessories') }}
</caption>
<thead> <thead>
<tr> <tr>
<th class="col-md-5">{{ trans('general.name') }}</th> <th class="col-md-5">{{ trans('general.name') }}</th>
@ -644,12 +648,11 @@
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</div>
</div><!-- /accessories-tab --> </div><!-- /accessories-tab -->
<div class="tab-pane" id="consumables"> <div class="tab-pane" id="consumables">
<div class="table-responsive">
<table <table
data-toolbar="#userConsumableToolbar"
data-cookie-id-table="userConsumableTable" data-cookie-id-table="userConsumableTable"
data-id-table="userConsumableTable" data-id-table="userConsumableTable"
id="userConsumableTable" id="userConsumableTable"
@ -668,6 +671,11 @@
"fileName": "export-consumable-{{ str_slug($user->username) }}-{{ date('Y-m-d') }}", "fileName": "export-consumable-{{ str_slug($user->username) }}-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","download","icon"] "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","download","icon"]
}'> }'>
<caption id="userConsumableToolbar" class="tableCaption">
{{ trans('general.consumables') }}
</caption>
<thead> <thead>
<tr> <tr>
<th class="col-md-3">{{ trans('general.name') }}</th> <th class="col-md-3">{{ trans('general.name') }}</th>
@ -693,8 +701,10 @@
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</div>
</div><!-- /consumables-tab --> </div><!-- /consumables-tab -->
<div class="tab-pane" id="test">
<p>fdlkgjljg</p>
</div>
</div><!-- /.tab-content --> </div><!-- /.tab-content -->
</div><!-- nav-tabs-custom --> </div><!-- nav-tabs-custom -->

View file

@ -9,9 +9,9 @@
<!-- begin non-ajaxed file listing table --> <!-- begin non-ajaxed file listing table -->
<div class="table-responsive"> <div class="table-responsive">
<table <table
data-cookie-id-table="{{ str_slug($object->name) }}UploadsTable" data-cookie-id-table="{{ str_slug($object->name ?? $object->id) }}UploadsTable"
data-id-table="{{ str_slug($object->name) }}UploadsTable" data-id-table="{{ str_slug($object->name ?? $object->id) }}UploadsTable"
id="{{ str_slug($object->name) }}}UploadsTable" id="{{ str_slug($object->name ?? $object->id) }}UploadsTable"
data-search="true" data-search="true"
data-pagination="true" data-pagination="true"
data-side-pagination="client" data-side-pagination="client"

View file

@ -40,16 +40,16 @@
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<x-icon type="assets" /> <x-icon type="assets" />
</div> </div>
<a href="{{ route('hardware.index') }}" class="small-box-footer"> <span class="small-box-footer">
{{ trans('general.view_all') }} {{ trans('general.view_all') }}
<x-icon type="arrow-circle-right" /> <x-icon type="arrow-circle-right" />
</a> </span>
</div> </div>
</a> </a>
</div><!-- ./col --> </div><!-- ./col -->
<div class="col-lg-2 col-xs-6"> <div class="col-lg-2 col-xs-6">
<a href="{{ route('licenses.index') }}"> <a href="{{ route('licenses.index') }}" aria-hidden="true">
<!-- small license box --> <!-- small license box -->
<div class="dashboard small-box bg-maroon"> <div class="dashboard small-box bg-maroon">
<div class="inner"> <div class="inner">
@ -59,10 +59,10 @@
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<x-icon type="licenses" /> <x-icon type="licenses" />
</div> </div>
<a href="{{ route('licenses.index') }}" class="small-box-footer"> <span class="small-box-footer">
{{ trans('general.view_all') }} {{ trans('general.view_all') }}
<x-icon type="arrow-circle-right" /> <x-icon type="arrow-circle-right" />
</a> </span>
</div> </div>
</a> </a>
</div><!-- ./col --> </div><!-- ./col -->
@ -79,10 +79,10 @@
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<x-icon type="accessories" /> <x-icon type="accessories" />
</div> </div>
<a href="{{ route('accessories.index') }}" class="small-box-footer"> <span class="small-box-footer">
{{ trans('general.view_all') }} {{ trans('general.view_all') }}
<x-icon type="arrow-circle-right" /> <x-icon type="arrow-circle-right" />
</a> </span>
</div> </div>
</a> </a>
</div><!-- ./col --> </div><!-- ./col -->
@ -98,10 +98,10 @@
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<x-icon type="consumables" /> <x-icon type="consumables" />
</div> </div>
<a href="{{ route('consumables.index') }}" class="small-box-footer"> <span class="small-box-footer">
{{ trans('general.view_all') }} {{ trans('general.view_all') }}
<x-icon type="arrow-circle-right" /> <x-icon type="arrow-circle-right" />
</a> </span>
</div> </div>
</a> </a>
</div><!-- ./col --> </div><!-- ./col -->
@ -117,10 +117,10 @@
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<x-icon type="components" /> <x-icon type="components" />
</div> </div>
<a href="{{ route('components.index') }}" class="small-box-footer"> <span class="small-box-footer">
{{ trans('general.view_all') }} {{ trans('general.view_all') }}
<x-icon type="arrow-circle-right" /> <x-icon type="arrow-circle-right" />
</a> </span>
</div> </div>
</a> </a>
</div><!-- ./col --> </div><!-- ./col -->
@ -136,9 +136,10 @@
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<x-icon type="users" /> <x-icon type="users" />
</div> </div>
<a href="{{ route('users.index') }}" class="small-box-footer">{{ trans('general.view_all') }} <span class="small-box-footer">
{{ trans('general.view_all') }}
<x-icon type="arrow-circle-right" /> <x-icon type="arrow-circle-right" />
</a> </span>
</div> </div>
</a> </a>
</div><!-- ./col --> </div><!-- ./col -->

View file

@ -42,8 +42,11 @@
{!! $errors->first('asset_tag', '<span class="alert-msg"><i class="fas fa-times"></i> :message</span>') !!} {!! $errors->first('asset_tag', '<span class="alert-msg"><i class="fas fa-times"></i> :message</span>') !!}
</div> </div>
<div class="col-md-2 col-sm-12"> <div class="col-md-2 col-sm-12">
<button class="add_field_button btn btn-default btn-sm"> <button class="add_field_button btn btn-default btn-sm" name="add_field_button">
<x-icon type="plus" /> <x-icon type="plus" />
<span class="sr-only">
{{ trans('general.new') }}
</span>
</button> </button>
</div> </div>
@endif @endif
@ -116,7 +119,7 @@
<!-- Datepicker --> <!-- Datepicker -->
<div class="form-group{{ $errors->has('next_audit_date') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('next_audit_date') ? ' has-error' : '' }}">
<label class="col-md-3 control-label"> <label class="col-md-3 control-label" for="next_audit_date">
{{ trans('general.next_audit_date') }} {{ trans('general.next_audit_date') }}
</label> </label>

View file

@ -45,7 +45,7 @@
</div> </div>
@if (isset($topSubmit) && ($topSubmit=='true')) @if (isset($topSubmit) && ($topSubmit=='true'))
<div class="col-md-3 text-right" style="padding-right: 10px;"> <div class="col-md-3 text-right" style="padding-right: 10px;">
<button type="submit" class="btn btn-primary pull-right"> <button type="submit" class="btn btn-primary pull-right" name="submit">
<x-icon type="checkmark" /> <x-icon type="checkmark" />
{{ trans('general.save') }} {{ trans('general.save') }}
</button> </button>