Revert accessibility changes temporarily.

Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/5857
This commit is contained in:
Lauri Ojansivu 2025-08-09 14:23:40 +03:00
parent e6347a305c
commit 1a1a44616f
9 changed files with 23 additions and 90 deletions

View file

@ -16,7 +16,6 @@ template(name="boardBody")
if notDisplayThisBoard
| {{_ 'tableVisibilityMode-allowPrivateOnly'}}
else
.board-wrapper(class=currentBoard.colorClass)
.board-canvas.js-swimlanes(
class="{{#if hasSwimlanes}}dragscroll{{/if}}"

View file

@ -340,12 +340,12 @@ BlazeComponent.extendComponent({
selectable: true,
timezone: 'local',
weekNumbers: true,
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
header: {
left: 'title today prev,next',
center:
'agendaDay,listDay,timelineDay agendaWeek,listWeek,timelineWeek month,listMonth',
right: '',
},
footerToolbar: false,
// height: 'parent', nope, doesn't work as the parent might be small
height: 'auto',
/* TODO: lists as resources: https://fullcalendar.io/docs/vertical-resource-view */
@ -473,29 +473,9 @@ BlazeComponent.extendComponent({
closeModal();
}
});
document.querySelector('.board-wrapper').appendChild(modalElement); // (optional: for better DOM order)
document.body.appendChild(modalElement);
const openModal = function() {
modalElement.style.display = 'flex';
modalElement.setAttribute('role', 'dialog');
modalElement.setAttribute('aria-modal', 'true');
// Set ARIA attributes for accessibility
modalElement.setAttribute('role', 'dialog');
modalElement.setAttribute('aria-modal', 'true');
// Move focus to the first input or button in the modal
const firstInput = modalElement.querySelector('input, button');
if (firstInput) firstInput.focus();
// Set aria-labelledby and aria-describedby for accessibility
const title = modalElement.querySelector('.modal-title');
if (title) {
title.id = 'modal-title';
modalElement.setAttribute('aria-labelledby', 'modal-title');
}
const desc = modalElement.querySelector('.modal-body');
if (desc) {
desc.id = 'modal-desc';
modalElement.setAttribute('aria-describedby', 'modal-desc');
}
modalElement.style.display = 'flex';
};
const closeModal = function() {
modalElement.style.display = 'none';

View file

@ -1,5 +1,5 @@
template(name="boardHeaderBar")
h1.header-board-menu {{currentBoard.title}}
h1.header-board-menu
with currentBoard
if $eq title 'Templates'
| {{_ 'templates'}}
@ -137,11 +137,8 @@ template(name="boardHeaderBar")
i.fa.fa-check-square-o
span {{#if MultiSelection.isActive}}{{_ 'multi-selection-on'}}{{else}}{{_ 'multi-selection'}}{{/if}}
if MultiSelection.isActive
a.board-header-btn-close.js-multiselection-reset(
title="{{_ 'deactivate-multi-selection'}}"
aria-label="{{_ 'deactivate-multi-selection'}}"
)
i.fa.fa-times-thin
a.board-header-btn-close.js-multiselection-reset(title="{{_ 'filter-clear'}}")
i.fa.fa-times-thin
.separator
a.board-header-btn.js-toggle-sidebar(title="{{_ 'sidebar-open'}} {{_ 'or'}} {{_ 'sidebar-close'}}")

View file

@ -540,7 +540,7 @@ template(name="cardDetails")
else if getDescription
if currentBoard.allowsDescriptionTitle
hr
div.card-details-item-title {{_ 'description'}}
h3.card-details-item-title {{_ 'description'}}
if currentBoard.allowsDescriptionText
+viewer
= getDescription

View file

@ -39,20 +39,12 @@ template(name="header")
if currentSetting.customTopLeftCornerLogoImageUrl
if currentSetting.customTopLeftCornerLogoLinkUrl
a(href="{{currentSetting.customTopLeftCornerLogoLinkUrl}}" alt="{{currentSetting.productName}}" title="{{currentSetting.productName}}")
img(
src="{{currentSetting.customTopLeftCornerLogoImageUrl}}"
alt="{{currentSetting.productName}} logo"
title="{{currentSetting.productName}}"
)
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="{{#if currentSetting.customTopLeftCornerLogoHeight}}#{currentSetting.customTopLeftCornerLogoHeight}{{else}}27{{/if}}" width="auto" margin="0" padding="0")
unless currentSetting.customTopLeftCornerLogoLinkUrl
img(src="{{currentSetting.customTopLeftCornerLogoImageUrl}}" height="{{#if currentSetting.customTopLeftCornerLogoHeight}}#{currentSetting.customTopLeftCornerLogoHeight}{{else}}27{{/if}}" width="auto" margin="0" padding="0" alt="{{currentSetting.productName}}" title="{{currentSetting.productName}}")
unless currentSetting.customTopLeftCornerLogoImageUrl
div#headerIsSettingDatabaseCallDone
img(
src="{{pathFor '/logo-header.png'}}"
alt="{{currentSetting.productName}} logo"
title="{{currentSetting.productName}}"
)
img(src="{{pathFor '/logo-header.png'}}" alt="{{currentSetting.productName}}" title="{{currentSetting.productName}}")
span.allBoards
a(href="{{pathFor 'home'}}")
span.fa.fa-home
@ -81,8 +73,7 @@ template(name="header")
// Hide duplicate create board button,
// because it did not show board templates correctly.
//a#header-new-board-icon.js-create-board
button.add-card(aria-label="Add card" title="Add card")
i.fa.fa-plus
// i.fa.fa-plus(title="Create a new board")
+notifications

View file

@ -23,39 +23,6 @@ table, tbody, td, tfoot, th, thread, tr, tt, ul, var {
.panel-heading.note-toolbar .note-color-palette div .note-color-btn {
background: none;
}
input::placeholder, textarea::placeholder {
color: #555 !important;
opacity: 1;
}
.error-notification {
color: #fff !important; /* White text */
background: #d32f2f !important; /* Strong red background */
}
.menu-text, .sidebar-text {
color: #222 !important; /* Very dark grey or black */
}
.notification-link {
color: #0056b3 !important; /* Darker blue for better contrast */
}
.card-title, .header-title {
color: #fff !important; /* White text for dark backgrounds */
}
.checklist-item.finished {
color: #444 !important; /* Darker grey for better contrast */
text-decoration: line-through;
}
.button-dark {
color: #fff !important;
}
.heading {
color: #222 !important;
}
.menu-text {
color: #222 !important;
}
.calendar-event, .calendar-card {
color: #fff !important;
}
a:focus {
outline: unset;
outline-offset: unset;
@ -227,7 +194,7 @@ strong {
p {
-webkit-user-select: text;
user-select: text;
}
p a {

View file

@ -12,8 +12,8 @@ head
link(rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png")
link(rel="manifest" crossOrigin="use-credentials" href="/site.webmanifest")
link(rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5")
meta(name="apple-mobile-web-app-title" content="WeKan")
meta(name="application-name" content="WeKan")
meta(name="apple-mobile-web-app-title" content="Wekan")
meta(name="application-name" content="Wekan")
meta(name="msapplication-TileColor" content="#00aba9")
meta(name="theme-color" content="#ffffff")
//link(rel="stylesheet" type="text/css" class="__meteor-css__" href="css/html5-default-theme.css")
@ -21,11 +21,11 @@ head
template(name="userFormsLayout")
section.auth-layout
if currentSetting.hideLogo
h1.at-form-landing-logo WeKan
h1.at-form-landing-logo
br
br
unless currentSetting.hideLogo
h1.at-form-landing-logo WeKan
h1.at-form-landing-logo
if currentSetting.customLoginLogoImageUrl
if currentSetting.customLoginLogoLinkUrl
a(href="{{currentSetting.customLoginLogoLinkUrl}}")
@ -35,7 +35,7 @@ template(name="userFormsLayout")
img(src="{{currentSetting.customLoginLogoImageUrl}}" width="300" height="auto")
br
else
img(src="{{pathFor '/WeKan-logo.svg'}}" alt="" width="300" height="auto")
img(src="{{pathFor '/wekan-logo.svg'}}" alt="" width="300" height="auto")
br
if currentSetting.textBelowCustomLoginLogo
hr

View file

@ -288,7 +288,7 @@ BlazeComponent.extendComponent({
this.setLoading(false);
}
DocHead.setTitle(`Settings - ${productName}`);
DocHead.setTitle(productName);
},
sendSMTPTestEmail() {

View file

@ -225,9 +225,8 @@ FlowRouter.route('/global-search', {
Utils.manageCustomUI();
Utils.manageMatomo();
const currentSetting = ReactiveCache.getCurrentSetting && ReactiveCache.getCurrentSetting();
const productName = currentSetting && currentSetting.productName ? currentSetting.productName : 'WeKan';
DocHead.setTitle(`${TAPi18n.__('globalSearch-title')} - ${productName}`);
DocHead.setTitle(TAPi18n.__('globalSearch-title'));
if (FlowRouter.getQueryParam('q')) {
Session.set(
'globalQuery',