From 7119de9b8d05ce0124031d05c2ddfec85e7ad3d0 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 15 Jul 2024 16:39:53 +0800 Subject: [PATCH 1/8] WebUI: provide semantic information of table body From https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#usage_notes : >Specifying such table content groups also provides valuable contextual >information for assistive technologies --- src/webui/www/.htmlvalidate.json | 1 - src/webui/www/private/download.html | 262 +-- src/webui/www/private/index.html | 28 +- src/webui/www/private/upload.html | 246 +- src/webui/www/private/views/about.html | 120 +- src/webui/www/private/views/preferences.html | 2058 +++++++++-------- src/webui/www/private/views/properties.html | 174 +- .../www/private/views/rssDownloader.html | 170 +- src/webui/www/private/views/statistics.html | 102 +- 9 files changed, 1624 insertions(+), 1537 deletions(-) diff --git a/src/webui/www/.htmlvalidate.json b/src/webui/www/.htmlvalidate.json index d07cc98d3..e923fc76d 100644 --- a/src/webui/www/.htmlvalidate.json +++ b/src/webui/www/.htmlvalidate.json @@ -8,7 +8,6 @@ "no-conditional-comment": "off", "no-inline-style": "off", "prefer-button": "off", - "prefer-tbody": "off", "text-content": "off", "void-style": "off", "wcag/h63": "off", diff --git a/src/webui/www/private/download.html b/src/webui/www/private/download.html index 3d343dce3..7be8e6e96 100644 --- a/src/webui/www/private/download.html +++ b/src/webui/www/private/download.html @@ -23,137 +23,139 @@

QBT_TR(Only one link per line)QBT_TR[CONTEXT=HttpServer]

- - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
- - - -
- - -
-
+ + + - - -
- - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - - -
- - - - -
+ + + +
+ + + +
+ + + +
+ + +
+ + +
+
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + + + +
diff --git a/src/webui/www/private/index.html b/src/webui/www/private/index.html index 224c92e7f..c60105d98 100644 --- a/src/webui/www/private/index.html +++ b/src/webui/www/private/index.html @@ -249,19 +249,21 @@
- - - - - - - - - - - - - + + + + + + + + + + + + + + +
QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]QBT_TR(Download speed icon)QBT_TR[CONTEXT=MainWindow]QBT_TR(Upload speed icon)QBT_TR[CONTEXT=MainWindow]
QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]QBT_TR(Download speed icon)QBT_TR[CONTEXT=MainWindow]QBT_TR(Upload speed icon)QBT_TR[CONTEXT=MainWindow]
diff --git a/src/webui/www/private/upload.html b/src/webui/www/private/upload.html index 2be87ba9e..71e65d23a 100644 --- a/src/webui/www/private/upload.html +++ b/src/webui/www/private/upload.html @@ -19,129 +19,131 @@
- - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
- - -
-
+ + + - - -
- - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - - -
- - - - -
+ + + +
+ + + +
+ + +
+ + +
+
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + + + +
diff --git a/src/webui/www/private/views/about.html b/src/webui/www/private/views/about.html index e566106a8..9d6f7151d 100644 --- a/src/webui/www/private/views/about.html +++ b/src/webui/www/private/views/about.html @@ -7,52 +7,58 @@

QBT_TR(An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar.)QBT_TR[CONTEXT=AboutDialog]

Copyright © 2006-2024 The qBittorrent project

- - - - - - - - - - - - + + + + + + + + + + + + + +
QBT_TR(Home Page:)QBT_TR[CONTEXT=AboutDialog]https://www.qbittorrent.org
QBT_TR(Bug Tracker:)QBT_TR[CONTEXT=AboutDialog]https://bugs.qbittorrent.org
QBT_TR(Forum:)QBT_TR[CONTEXT=AboutDialog]https://forum.qbittorrent.org
QBT_TR(Home Page:)QBT_TR[CONTEXT=AboutDialog]https://www.qbittorrent.org
QBT_TR(Bug Tracker:)QBT_TR[CONTEXT=AboutDialog]https://bugs.qbittorrent.org
QBT_TR(Forum:)QBT_TR[CONTEXT=AboutDialog]https://forum.qbittorrent.org
@@ -816,26 +822,28 @@ diff --git a/src/webui/www/private/views/preferences.html b/src/webui/www/private/views/preferences.html index 89ac7fb64..fb88ae016 100644 --- a/src/webui/www/private/views/preferences.html +++ b/src/webui/www/private/views/preferences.html @@ -10,24 +10,26 @@
QBT_TR(Action on double-click)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - + + + + + + + + + +
- -
- -
+ +
+ +
@@ -41,23 +43,25 @@ - - - - - - - - - - + + + + + + + + + + + +
QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog]
- - -
QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog]
+ + +
@@ -120,91 +124,95 @@
QBT_TR(Saving Management)QBT_TR[CONTEXT=HttpServer] - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
+ + + +
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
- - - -
- - - - -
- - - - -
- - - - -
+ + + +
+ + + + +
+ + + + +
+ + + + +
@@ -235,30 +243,32 @@ - - - - - - - - - - - - + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
@@ -269,22 +279,24 @@ - - - - - - - - + + + + + + + + + +
- - - -
- - - -
+ + + +
+ + + +
@@ -351,34 +363,36 @@
QBT_TR(Connections Limits)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
- - -
- - -
- - -
- - -
+ + +
+ + +
+ + +
+ + +
@@ -388,20 +402,22 @@ - - - - - - + + + + + + + +
- - - - - - - -
+ + + + + + + +
@@ -412,31 +428,33 @@
QBT_TR(Proxy Server)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - + + + + + + + + + +
- - - - - - - - - - - -
+ + + + + + + + + + + +
@@ -450,22 +468,24 @@ - - - - - - - - + + + + + + + + + +
- - - -
- - - -
+ + + +
+ + + +
QBT_TR(Info: The password is saved unencrypted)QBT_TR[CONTEXT=OptionsDialog] @@ -518,17 +538,19 @@
QBT_TR(Global Rate Limits)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - - + + + + + + + + + + +
- QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow] -   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
  QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
+ QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow] +   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
  QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
QBT_TR(0 means unlimited)QBT_TR[CONTEXT=OptionsDialog]
@@ -536,17 +558,19 @@
QBT_TR(Alternative Rate Limits)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - - + + + + + + + + + + +
- QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow] -   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
  QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
+ QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow] +   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
  QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
QBT_TR(0 means unlimited)QBT_TR[CONTEXT=OptionsDialog] @@ -636,30 +660,32 @@ - - - - - - - - - - - - + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
@@ -667,30 +693,32 @@ - - - - - - - - - - - - + + + + + + + + + + + + + +
- - -   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog] -
+ + +   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog] +
@@ -698,44 +726,46 @@
QBT_TR(Seeding Limits)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
- - - - -
- - - - QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog] -
- - - - QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog] -
- -
+ + + + +
+ + + + QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog] +
+ + + + QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog] +
+ +
@@ -756,30 +786,32 @@
- - - - - - - - - - - - + + + + + + + + + + + + + +
- - -   QBT_TR( min)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR( sec)QBT_TR[CONTEXT=OptionsDialog] -
- - - -
+ + +   QBT_TR( min)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR( sec)QBT_TR[CONTEXT=OptionsDialog] +
+ + + +
@@ -808,16 +840,18 @@
QBT_TR(Web User Interface (Remote control))QBT_TR[CONTEXT=OptionsDialog] - - - - + + + + + +
- - - - - -
+ + + + + +
@@ -829,22 +863,24 @@ - - - - - - - - + + + + + + + + + +
- - - -
- - - -
+ + + +
+ + + +
@@ -852,22 +888,24 @@
QBT_TR(Authentication)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - + + + + + + + + + +
- - - -
- - - -
+ + + +
+ + + +
@@ -881,20 +919,24 @@
- - - - - - - - + + + + + + + + + +
QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
- - - - + + + + + +
  QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
  QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
@@ -929,18 +971,20 @@ - - - - + + +
- - - -
@@ -977,30 +1021,32 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD - - - - - - - - - - - - + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
@@ -1009,560 +1055,564 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
QBT_TR(qBittorrent Section)QBT_TR[CONTEXT=OptionsDialog] (QBT_TR(Open documentation)QBT_TR[CONTEXT=HttpServer]) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - -
- - - -
- - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
- - - -
- - - -
- - -   QBT_TR(min)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
- - - -
- - - -
- - -   QBT_TR(ms)QBT_TR[CONTEXT=OptionsDialog] -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + + +
+ + + +
+ + +   QBT_TR(min)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + + +
+ + + +
+ + +   QBT_TR(ms)QBT_TR[CONTEXT=OptionsDialog] +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
QBT_TR(libtorrent Section)QBT_TR[CONTEXT=OptionsDialog] (QBT_TR(Open documentation)QBT_TR[CONTEXT=HttpServer]) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
- - - -
- - - -
- - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(s)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
- - -   % -
- - - -
- - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
- - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - -   % -
- - -   % -
- - -   s -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(s)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   % +
+ + + +
+ + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +   % +
+ + +   % +
+ + +   s +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
diff --git a/src/webui/www/private/views/properties.html b/src/webui/www/private/views/properties.html index b42c8d19f..badda7f09 100644 --- a/src/webui/www/private/views/properties.html +++ b/src/webui/www/private/views/properties.html @@ -1,99 +1,105 @@
- - - - + + + + + +
QBT_TR(Progress:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Progress:)QBT_TR[CONTEXT=PropertiesWidget]

QBT_TR(Transfer)QBT_TR[CONTEXT=PropertiesWidget] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
QBT_TR(Time Active:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(ETA:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Connections:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Downloaded:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Uploaded:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Seeds:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Download Speed:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Upload Speed:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Peers:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Download Limit:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Upload Limit:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Wasted:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Share Ratio:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Reannounce In:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Last Seen Complete:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Popularity:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Time Active:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(ETA:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Connections:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Downloaded:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Uploaded:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Seeds:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Download Speed:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Upload Speed:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Peers:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Download Limit:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Upload Limit:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Wasted:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Share Ratio:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Reannounce In:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Last Seen Complete:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Popularity:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Information)QBT_TR[CONTEXT=PropertiesWidget] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
QBT_TR(Total Size:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Pieces:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Created By:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Added On:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Completed On:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Created On:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Private:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Info Hash v1:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Info Hash v2:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Save Path:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Comment:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Total Size:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Pieces:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Created By:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Added On:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Completed On:)QBT_TR[CONTEXT=PropertiesWidget]QBT_TR(Created On:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Private:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Info Hash v1:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Info Hash v2:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Save Path:)QBT_TR[CONTEXT=PropertiesWidget]
QBT_TR(Comment:)QBT_TR[CONTEXT=PropertiesWidget]
diff --git a/src/webui/www/private/views/rssDownloader.html b/src/webui/www/private/views/rssDownloader.html index 0ec57a3ff..b1382c012 100644 --- a/src/webui/www/private/views/rssDownloader.html +++ b/src/webui/www/private/views/rssDownloader.html @@ -167,30 +167,32 @@ - - - - - - - - - - - - + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
@@ -201,24 +203,26 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
- - - - - - - - + + + + + + + + + +
- - - -
- - - -
+ + + +
+ + + +
@@ -226,52 +230,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
- - - - + + + + + +
- - - -
+ + + +
- - - - + + + + + +
QBT_TR( days)QBT_TR[CONTEXT=AutomatedRssDownloader]
QBT_TR( days)QBT_TR[CONTEXT=AutomatedRssDownloader]
QBT_TR(Last Match: Unknown)QBT_TR[CONTEXT=AutomatedRssDownloader]
- - - - + + + + + +
- - - -
+ + + +
- - - - + + + + + +
- - - -
+ + + +
diff --git a/src/webui/www/private/views/statistics.html b/src/webui/www/private/views/statistics.html index dffd3ecc9..19e9e73cb 100644 --- a/src/webui/www/private/views/statistics.html +++ b/src/webui/www/private/views/statistics.html @@ -1,59 +1,65 @@

QBT_TR(User statistics)QBT_TR[CONTEXT=StatsDialog]

- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
QBT_TR(All-time upload:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(All-time download:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(All-time share ratio:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Session waste:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Connected peers:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(All-time upload:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(All-time download:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(All-time share ratio:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Session waste:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Connected peers:)QBT_TR[CONTEXT=StatsDialog]

QBT_TR(Cache statistics)QBT_TR[CONTEXT=StatsDialog]

- - - - - - - - + + + + + + + + + +
QBT_TR(Read cache hits:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Total buffer size:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Read cache hits:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Total buffer size:)QBT_TR[CONTEXT=StatsDialog]

QBT_TR(Performance statistics)QBT_TR[CONTEXT=StatsDialog]

- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
QBT_TR(Write cache overload:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Read cache overload:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Queued I/O jobs:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Average time in queue:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Total queued size:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Write cache overload:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Read cache overload:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Queued I/O jobs:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Average time in queue:)QBT_TR[CONTEXT=StatsDialog]
QBT_TR(Total queued size:)QBT_TR[CONTEXT=StatsDialog]
From adde3c3f652d22c77d5cd88e80bd72b84626d464 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 15 Jul 2024 17:03:21 +0800 Subject: [PATCH 2/8] WebUI: check headings to have textual content --- src/webui/www/.htmlvalidate.json | 1 - src/webui/www/private/views/about.html | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/webui/www/.htmlvalidate.json b/src/webui/www/.htmlvalidate.json index e923fc76d..347314165 100644 --- a/src/webui/www/.htmlvalidate.json +++ b/src/webui/www/.htmlvalidate.json @@ -3,7 +3,6 @@ "html-validate:recommended" ], "rules": { - "empty-heading": "off", "long-title": "off", "no-conditional-comment": "off", "no-inline-style": "off", diff --git a/src/webui/www/private/views/about.html b/src/webui/www/private/views/about.html index 9d6f7151d..3c366501d 100644 --- a/src/webui/www/private/views/about.html +++ b/src/webui/www/private/views/about.html @@ -2,7 +2,7 @@ QBT_TR(qBittorrent Mascot)QBT_TR[CONTEXT=AboutDialog]
QBT_TR(qBittorrent icon)QBT_TR[CONTEXT=AboutDialog] -

+

qBittorrent

QBT_TR(An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar.)QBT_TR[CONTEXT=AboutDialog]

Copyright © 2006-2024 The qBittorrent project

@@ -855,7 +855,7 @@ const qbtVersion = window.parent.qBittorrent.Cache.qbtVersion.get(); const buildInfo = window.parent.qBittorrent.Cache.buildInfo.get(); - $("qbittorrentVersion").innerText = `qBittorrent ${qbtVersion} QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]`; + $("qbittorrentVersion").textContent = `qBittorrent ${qbtVersion} QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]`; $("qtVersion").textContent = buildInfo.qt; $("libtorrentVersion").textContent = buildInfo.libtorrent; $("boostVersion").textContent = buildInfo.boost; From 25dd6c72f78bfdfbb4c3bfa774523e43c54a3349 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 15 Jul 2024 17:06:48 +0800 Subject: [PATCH 3/8] WebUI: use the correct property for accessing text In these instances we don't need the rendered result. So use the most efficient property to access it: `.textContent`. --- src/webui/www/private/newtag.html | 2 +- src/webui/www/private/scripts/prop-trackers.js | 2 +- src/webui/www/private/views/rss.html | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/webui/www/private/newtag.html b/src/webui/www/private/newtag.html index a662fc108..b02937e22 100644 --- a/src/webui/www/private/newtag.html +++ b/src/webui/www/private/newtag.html @@ -34,7 +34,7 @@ const uriHashes = window.qBittorrent.Misc.safeTrim(new URI().getData("hashes")); if (uriAction === "create") - $("legendText").innerText = "QBT_TR(Tag:)QBT_TR[CONTEXT=TagFilterWidget]"; + $("legendText").textContent = "QBT_TR(Tag:)QBT_TR[CONTEXT=TagFilterWidget]"; $("tagName").focus(); diff --git a/src/webui/www/private/scripts/prop-trackers.js b/src/webui/www/private/scripts/prop-trackers.js index e9d04be49..f675075b0 100644 --- a/src/webui/www/private/scripts/prop-trackers.js +++ b/src/webui/www/private/scripts/prop-trackers.js @@ -187,7 +187,7 @@ window.qBittorrent.PropTrackers ??= (() => { if (current_hash.length === 0) return; - const trackerUrl = encodeURIComponent(element.childNodes[1].innerText); + const trackerUrl = encodeURIComponent(element.childNodes[1].textContent); new MochaUI.Window({ id: "trackersPage", title: "QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]", diff --git a/src/webui/www/private/views/rss.html b/src/webui/www/private/views/rss.html index ed522d15a..48c75a9a1 100644 --- a/src/webui/www/private/views/rss.html +++ b/src/webui/www/private/views/rss.html @@ -401,7 +401,7 @@ if (article) { $("rssDetailsView").append((() => { const torrentName = document.createElement("p"); - torrentName.innerText = article.title; + torrentName.textContent = article.title; torrentName.id = "rssTorrentDetailsName"; return torrentName; })()); @@ -410,11 +410,11 @@ torrentDate.id = "rssTorrentDetailsDate"; const torrentDateDesc = document.createElement("b"); - torrentDateDesc.innerText = "QBT_TR(Date: )QBT_TR[CONTEXT=RSSWidget]"; + torrentDateDesc.textContent = "QBT_TR(Date: )QBT_TR[CONTEXT=RSSWidget]"; torrentDate.append(torrentDateDesc); const torrentDateData = document.createElement("span"); - torrentDateData.innerText = new Date(article.date).toLocaleString(); + torrentDateData.textContent = new Date(article.date).toLocaleString(); torrentDate.append(torrentDateData); return torrentDate; From 7e8e6269d0f8ece32e856a52c5e0b3a9a9207c48 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 15 Jul 2024 17:11:56 +0800 Subject: [PATCH 4/8] WebUI: drop unused lint rule --- src/webui/www/.htmlvalidate.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/webui/www/.htmlvalidate.json b/src/webui/www/.htmlvalidate.json index 347314165..0d1f3c84c 100644 --- a/src/webui/www/.htmlvalidate.json +++ b/src/webui/www/.htmlvalidate.json @@ -4,7 +4,6 @@ ], "rules": { "long-title": "off", - "no-conditional-comment": "off", "no-inline-style": "off", "prefer-button": "off", "text-content": "off", From 0fd24358cec4e4b321183bc0293505c782120a4c Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 15 Jul 2024 17:20:55 +0800 Subject: [PATCH 5/8] WebUI: check buttons to have valid text (or assistive text) It helps people using assistive technology. https://stackoverflow.com/a/22040485 --- src/webui/www/.htmlvalidate.json | 1 - src/webui/www/private/confirmdeletion.html | 3 +-- src/webui/www/private/views/rssDownloader.html | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/webui/www/.htmlvalidate.json b/src/webui/www/.htmlvalidate.json index 0d1f3c84c..fa2b5eb5b 100644 --- a/src/webui/www/.htmlvalidate.json +++ b/src/webui/www/.htmlvalidate.json @@ -6,7 +6,6 @@ "long-title": "off", "no-inline-style": "off", "prefer-button": "off", - "text-content": "off", "void-style": "off", "wcag/h63": "off", "wcag/h71": "off" diff --git a/src/webui/www/private/confirmdeletion.html b/src/webui/www/private/confirmdeletion.html index d2e1a1184..887557967 100644 --- a/src/webui/www/private/confirmdeletion.html +++ b/src/webui/www/private/confirmdeletion.html @@ -89,8 +89,7 @@

  QBT_TR(Are you sure you want to remove the selected torrents from the transfer list?)QBT_TR[CONTEXT=HttpServer]

-      +     

     diff --git a/src/webui/www/private/views/rssDownloader.html b/src/webui/www/private/views/rssDownloader.html index b1382c012..e6c152a1d 100644 --- a/src/webui/www/private/views/rssDownloader.html +++ b/src/webui/www/private/views/rssDownloader.html @@ -136,8 +136,8 @@
QBT_TR(Download Rules)QBT_TR[CONTEXT=AutomatedRssDownloader] - - + +
From c3b7dfa918476abf6dfae32db898994fb860f226 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 15 Jul 2024 17:33:53 +0800 Subject: [PATCH 6/8] WebUI: omit closing on HTML void elements https://developer.mozilla.org/en-US/docs/Glossary/Void_element#self-closing_tags : >Self-closing tags () do not exist in HTML. --- src/webui/www/.htmlvalidate.json | 1 - src/webui/www/private/addpeers.html | 4 +- src/webui/www/private/addtrackers.html | 10 +- src/webui/www/private/confirmdeletion.html | 10 +- .../www/private/confirmfeeddeletion.html | 8 +- src/webui/www/private/confirmruleclear.html | 8 +- .../www/private/confirmruledeletion.html | 8 +- src/webui/www/private/download.html | 36 +- src/webui/www/private/downloadlimit.html | 6 +- src/webui/www/private/edittracker.html | 12 +- src/webui/www/private/index.html | 216 +++++------ src/webui/www/private/newcategory.html | 10 +- src/webui/www/private/newfeed.html | 8 +- src/webui/www/private/newfolder.html | 8 +- src/webui/www/private/newrule.html | 8 +- src/webui/www/private/newtag.html | 8 +- src/webui/www/private/rename.html | 8 +- src/webui/www/private/rename_feed.html | 8 +- src/webui/www/private/rename_file.html | 8 +- src/webui/www/private/rename_files.html | 16 +- src/webui/www/private/rename_rule.html | 8 +- src/webui/www/private/setlocation.html | 8 +- src/webui/www/private/shareratio.html | 24 +- src/webui/www/private/upload.html | 34 +- src/webui/www/private/uploadlimit.html | 6 +- src/webui/www/private/views/about.html | 6 +- src/webui/www/private/views/filters.html | 28 +- .../private/views/installsearchplugin.html | 2 +- src/webui/www/private/views/log.html | 6 +- src/webui/www/private/views/preferences.html | 348 +++++++++--------- .../www/private/views/propertiesToolbar.html | 2 +- src/webui/www/private/views/rss.html | 22 +- .../www/private/views/rssDownloader.html | 26 +- src/webui/www/private/views/search.html | 18 +- .../www/private/views/searchplugins.html | 4 +- src/webui/www/public/index.html | 24 +- 36 files changed, 483 insertions(+), 484 deletions(-) diff --git a/src/webui/www/.htmlvalidate.json b/src/webui/www/.htmlvalidate.json index fa2b5eb5b..2c61fff0a 100644 --- a/src/webui/www/.htmlvalidate.json +++ b/src/webui/www/.htmlvalidate.json @@ -6,7 +6,6 @@ "long-title": "off", "no-inline-style": "off", "prefer-button": "off", - "void-style": "off", "wcag/h63": "off", "wcag/h71": "off" } diff --git a/src/webui/www/private/addpeers.html b/src/webui/www/private/addpeers.html index 811276dc0..f7d0a1a27 100644 --- a/src/webui/www/private/addpeers.html +++ b/src/webui/www/private/addpeers.html @@ -2,9 +2,9 @@ - + QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog] - + @@ -17,7 +17,7 @@
-
+

QBT_TR(Download Torrents from their URLs or Magnet links)QBT_TR[CONTEXT=HttpServer]

QBT_TR(Only one link per line)QBT_TR[CONTEXT=HttpServer]

@@ -40,7 +40,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -68,7 +68,7 @@ - +
@@ -77,8 +77,8 @@ - - + + @@ -86,7 +86,7 @@ - + @@ -106,7 +106,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -134,7 +134,7 @@ - + @@ -142,8 +142,8 @@ - - + + @@ -151,8 +151,8 @@ - - + + diff --git a/src/webui/www/private/downloadlimit.html b/src/webui/www/private/downloadlimit.html index 48828a5ab..ab4586f8a 100644 --- a/src/webui/www/private/downloadlimit.html +++ b/src/webui/www/private/downloadlimit.html @@ -2,9 +2,9 @@ - + QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget] - + @@ -21,7 +21,7 @@
- +
@@ -56,70 +56,70 @@
  • QBT_TR(File)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(Edit)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(View)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(Tools)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(Help)QBT_TR[CONTEXT=MainWindow]
  •    - QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget] - QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget] - QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget] + QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget] + QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget] + QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget] - QBT_TR(Top of Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Move Up Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Move Down Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Bottom of Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Top of Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Move Up Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Move Down Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Bottom of Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog] + QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]
    - +
    @@ -140,98 +140,98 @@