From 852b23cbed3e32bef118e2be0b44fdaf04360177 Mon Sep 17 00:00:00 2001 From: timveld Date: Sun, 1 Feb 2026 08:47:15 +0100 Subject: [PATCH] Accessibility: improve table semantics and ARIA usage --- management/templates/aliases.html | 14 ++++++++------ management/templates/custom-dns.html | 22 +++++++++++++--------- management/templates/external-dns.html | 6 +++--- management/templates/mail-guide.html | 22 +++++++++++----------- management/templates/ssl.html | 8 ++++---- management/templates/sync-guide.html | 8 ++++---- management/templates/system-backup.html | 8 ++++---- management/templates/users.html | 14 +++++++------- management/templates/web.html | 8 ++++---- 9 files changed, 58 insertions(+), 52 deletions(-) diff --git a/management/templates/aliases.html b/management/templates/aliases.html index 6c8b0376..cf188149 100644 --- a/management/templates/aliases.html +++ b/management/templates/aliases.html @@ -77,10 +77,10 @@ - - - - + + + + @@ -122,7 +122,9 @@

Verbs

Alias
Forwards ToPermitted Senders Alias
Forwards To Permitted Senders
- + + + @@ -153,7 +155,7 @@ function show_aliases() { function(r) { $('#alias_table tbody').html(""); for (var i = 0; i < r.length; i++) { - var hdr = $(""); + var hdr = $(""); hdr.find('th').text(r[i].domain); $('#alias_table tbody').append(hdr); diff --git a/management/templates/custom-dns.html b/management/templates/custom-dns.html index 7d3b6b37..f91e288b 100644 --- a/management/templates/custom-dns.html +++ b/management/templates/custom-dns.html @@ -64,12 +64,12 @@ created
Verb Action
Verb Action
GET(none) Returns a list of existing mail aliases. Adding ?format=json to the URL will give JSON-encoded results.
POST/add Adds a new mail alias. Required POST-body parameters are address and forwards_to.
POST/remove Removes a mail alias. Required POST-body parameter is address.
- - - - - - + + + + + + @@ -119,7 +119,9 @@

Verbs

- + Verb + @@ -129,7 +131,9 @@

Parameters

Verb Usage
Usage
GET Returns matching custom DNS records as a JSON array of objects. Each object has the keys qname, rtype, and value. The optional qname and rtype parameters in the request URL filter the records returned in the response. The request body (-d "...") must be omitted.
PUT Sets a custom DNS record replacing any existing records with the same qname and rtype. Use PUT (instead of POST) when you only have one value for a qname and rtype, such as typical A records (without round-robin).
POST Adds a new custom DNS record. Use POST when you have multiple TXT records or round-robin A records. (PUT would delete previously added records.)
- + + + @@ -214,7 +218,7 @@ function show_current_custom_dns_update_after_sort() { var last_zone = null; for (var i = 0; i < data.length; i++) { if (sort_key == "qname" && data[i].zone != last_zone) { - var r = $(""); + var r = $(""); r.find("th").text(data[i].zone); tbody.append(r); last_zone = data[i].zone; diff --git a/management/templates/external-dns.html b/management/templates/external-dns.html index 4532c3f5..e06109c1 100644 --- a/management/templates/external-dns.html +++ b/management/templates/external-dns.html @@ -59,9 +59,9 @@
Parameter Value
Parameter Value
email The email address of any administrative user here.
password That user’s password.
qname The fully qualified domain name for the record you are trying to set. It must be one of the domain names or a subdomain of one of the domain names hosted on this box. (Add mail users or aliases to add new domains.)
- - - + + + diff --git a/management/templates/mail-guide.html b/management/templates/mail-guide.html index 9ba64c05..bc3af627 100644 --- a/management/templates/mail-guide.html +++ b/management/templates/mail-guide.html @@ -24,16 +24,16 @@
QNameTypeValueQNameTypeValue
- + - - - - - - - - + + + + + + + +
Option Value
Option Value
Protocol/Method IMAP
Mail server {{hostname}}
IMAP Port 993
IMAP Security SSL or TLS
SMTP Port 465
SMTP Security SSL or TLS
Username: Your whole email address.
Password: Your mail password.
Protocol/Method IMAP
Mail server {{hostname}}
IMAP Port 993
IMAP Security SSL or TLS
SMTP Port 465
SMTP Security SSL or TLS
Username: Your whole email address.
Password: Your mail password.

In addition to setting up your email, you’ll also need to set up contacts and calendar synchronization separately.

@@ -45,8 +45,8 @@

On iOS devices, devices on this compatibility list, or using Outlook 2007 or later on Windows 7 and later, you may set up your mail as an Exchange or ActiveSync server. However, we’ve found this to be more buggy than using IMAP as described above. If you encounter any problems, please use the manual settings above.

- - + +
Server {{hostname}}
Options Secure Connection
Server {{hostname}}
Options Secure Connection

Your device should also provide a contacts list and calendar that syncs to this box when you use this method.

diff --git a/management/templates/ssl.html b/management/templates/ssl.html index a6b913ee..84109b26 100644 --- a/management/templates/ssl.html +++ b/management/templates/ssl.html @@ -28,9 +28,9 @@ - - - + + + @@ -101,7 +101,7 @@ function show_tls(keep_provisioning_shown) { $('#ssldomain').html(''); $('#ssl_domains').show(); for (var i = 0; i < domains.length; i++) { - var row = $(""); + var row = $(""); tb.append(row); row.attr('data-domain', domains[i].domain); row.find('.domain a').text(domains[i].domain); diff --git a/management/templates/sync-guide.html b/management/templates/sync-guide.html index 90c9f6eb..9c507317 100644 --- a/management/templates/sync-guide.html +++ b/management/templates/sync-guide.html @@ -12,9 +12,9 @@

You can edit your contacts and calendar from your web browser.

- - - + + +
For... Visit this URL
Contacts https://{{hostname}}/cloud/contacts
Calendar https://{{hostname}}/cloud/calendar
For... Visit this URL
Contacts https://{{hostname}}/cloud/contacts
Calendar https://{{hostname}}/cloud/calendar

Log in settings are the same as with mail: your @@ -29,7 +29,7 @@

Otherwise, the app below can synchronize your contacts and calendar to your Android phone.

- +
Google Play F-Droid
Google Play F-Droid
DAVx⁵ (paid) DAVx⁵ (free)
diff --git a/management/templates/system-backup.html b/management/templates/system-backup.html index 3adea5b6..b4985cbe 100644 --- a/management/templates/system-backup.html +++ b/management/templates/system-backup.html @@ -171,10 +171,10 @@ - - - - + + + + diff --git a/management/templates/users.html b/management/templates/users.html index 0b9aea99..065f5f14 100644 --- a/management/templates/users.html +++ b/management/templates/users.html @@ -46,11 +46,11 @@
WhenTypeSizeDeleted in...WhenTypeSizeDeleted in...
- - - - - + + + + + @@ -115,7 +115,7 @@

Verbs

Email AddressSizeUsedQuotaActionsEmail AddressSizeUsedQuotaActions
- + @@ -171,7 +171,7 @@ function show_users() { function(r) { $('#user_table tbody').html(""); for (var i = 0; i < r.length; i++) { - var hdr = $(""); + var hdr = $(""); hdr.find('th').text(r[i].domain); $('#user_table tbody').append(hdr); diff --git a/management/templates/web.html b/management/templates/web.html index 7afab6ad..f5a995e1 100644 --- a/management/templates/web.html +++ b/management/templates/web.html @@ -23,9 +23,9 @@
Verb Action
Verb Action
GET(none) Returns a list of existing mail users. Adding ?format=json to the URL will give JSON-encoded results.
POST
- - - + + @@ -48,7 +48,7 @@ function show_web() { tb.text(''); for (var i = 0; i < domains.length; i++) { if (!domains[i].static_enabled) continue; - var row = $(""); + var row = $(""); tb.append(row); row.attr('data-domain', domains[i].domain); row.attr('data-custom-web-root', domains[i].custom_root);
SiteDirectory for Files + SiteDirectory for Files