This commit is contained in:
ken 2026-07-21 16:08:46 +08:00
parent d4f1cf5154
commit ef6c4d64d3
1 changed files with 25 additions and 36 deletions

View File

@ -12,7 +12,7 @@
});
function handleNavMove() {
var windowWidth = window.innerWidth;
var windowWidth = window.innerWidth;
if (windowWidth > 768) {
if ($signLanguageBox.length && $signLanguageBox.find('[accesskey="U"], [accesskey="W"]').length === 0) {
@ -630,7 +630,7 @@
}
});
if (document.documentElement.lang === 'zh_tw') {
document.documentElement.lang = 'zh-Hant';
document.documentElement.lang = 'zh-Hant-TW';
}
//tab鍵按下
$(document).on('keydown', function(e) {
@ -924,15 +924,6 @@
// 有連結目的之所有a標籤的無障礙處理
$(function() {
// Bootstrap 會把原始 title 搬到 data-bs-original-title先還原回來
$('a[data-bs-original-title]').each(function() {
var $a = $(this);
var originalTitle = $a.attr('data-bs-original-title');
if (originalTitle && originalTitle.trim() !== '') {
$a.attr('title', originalTitle);
}
});
/**
* 全站無障礙 AA 級補強 (整合 HM1240400C HM1240401C 規範)
*/
@ -946,7 +937,7 @@ $(function() {
//├─ 文字是路徑/空 → 補隱藏 span
//├─ 圖片+文字共存 → 圖片 alt 清空
//├─ 無 title → 自動產出 title
//├─ 有 title 但與連結文字或圖片 alt 重複 → 只保留開窗提示
//├─ 有 title 但與連結文字重複 → 只保留開窗提示
//├─ 有 title 出現空括號 () → 清除並補上正確開窗提示
//└─ 移除 aria-label
var urlParams = new URLSearchParams(window.location.search);
@ -992,9 +983,6 @@ $(function() {
var $img = $a.find('img');
var $icons = $a.find('i, svg');
var currentTitle = ($a.attr('title') || '').trim();
// ✅ 在 D 區塊清空 alt 之前,先記錄圖片原始 alt
var imgAltOriginal = $img.length > 0 ? ($img.attr('alt') || '').trim() : '';
// --- 【修正 1隱藏空連結】 ---
if (!isEditMode && linkText === "" && $img.length === 0 && $icons.length === 0) {
@ -1112,10 +1100,13 @@ $(function() {
.replace('另開新視窗', '')
.trim();
// ✅ title 去掉開窗字串後,若與連結文字或圖片原始 alt 相同,則只保留開窗提示
// ✅ 取得圖片原始 altD 區塊清空前的值)
var imgAltOriginal = $img.length > 0 ? ($img.data('originalAlt') || $img.attr('alt') || '').trim() : '';
// ✅ 修正title 去掉開窗字串後,若與連結文字或圖片 alt 相同,則只保留開窗提示
if (
(titleWithoutWindow === linkText && linkText !== i18n.link) ||
(imgAltOriginal !== '' && titleWithoutWindow === imgAltOriginal)
(imgAltOriginal !== '' && titleWithoutWindow === imgAltOriginal) // ✅ 新增:與圖片 alt 重複也觸發
) {
$a.attr('title', windowTask);
}
@ -1131,29 +1122,12 @@ $(function() {
// F. 最終清理:移除冗餘 label避免螢幕閱讀器唸兩次
$a.removeAttr('aria-label');
});
// ✅ G. 補強特定連結(須在迴圈外,因為 javascript: 連結被迴圈跳過)
$('.btn-o a').each(function() {
var $a = $(this);
if (!$a.attr('target')) {
$a.attr('target', '_blank');
$a.attr('rel', 'noopener noreferrer');
}
$a.attr('title', isEn ? 'Share to X Open in new window' : '分享至 X 在新視窗開啟');
});
$('.print-button a').each(function() {
var $a = $(this);
if (!$a.attr('title') || $a.attr('title').trim().toLowerCase() === 'print') {
$a.attr('title', isEn ? 'Print this page' : '列印此頁');
}
});
$('a.i-archive__file-name').each(function () {
var $a = $(this);
var isNewWindow = ($a.attr('target') === '_blank');
$a.attr('title', isNewWindow ? i18n.newWin : i18n.selfWin);
});
}
// ✅ 延遲 800ms 確保所有其他 function 執行完畢後才處理
@ -1162,7 +1136,22 @@ $(function() {
}, 800);
});
// if (location.href.search('editmode=on') === -1) {
// // 1. 處理圖片 alt 重複問題 (保持原邏輯但優化)
// $('a').has('img').each(function () {
// const $link = $(this);
// const linkText = $link.text().trim();
// $link.find('img').each(function () {
// const $img = $(this);
// const altText = $img.attr('alt')?.trim();
// if (altText && altText === linkText) {
// $img.attr('alt', '');
// }
// });
// });
// }
$(function() {
function smartFixIcons() {
var isEn = $('html').attr('lang') === 'en';