This commit is contained in:
ken 2026-09-17 16:06:22 +08:00
parent 5023071e0a
commit a04c1a2574
48 changed files with 296 additions and 97 deletions

View File

@ -991,7 +991,7 @@ $(function(){
var isLinkImage = $parentA.length > 0 && $parentA.text().replace(/\u00a0/g, '').trim() === "";
// --- 1. 處理「裝飾性圖片」標註 ---
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片") {
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片"||currentAlt === "This is a image" ||currentTitle === "This is a image") {
$img.attr('alt', '');
$img.removeAttr('title');
return;
@ -2169,27 +2169,28 @@ $(function() {
});
//rucaptcha-image
$(document).ready(function () {
$('.rucaptcha-image').removeAttr('onload');
// 檢查是否已插入過
if (!$('#captcha_audio').length) {
const audioButton = $(`
<button
title="播放驗證碼語音"
type="button"
onclick="document.getElementById('captcha_audio').play();"
class="fas fa-volume-up"
aria-label="播放驗證碼語音"
role="button"
style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">
<span class="sr-only">播放驗證碼語音</span>
</button>
`);
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>');
$('.rucaptcha-image').after(audioButton, audio);
// >>> 修正:先確認頁面上真的有驗證碼圖片,再往下執行,避免沒有驗證碼的頁面也發出多餘的 wav 請求
if ($('.rucaptcha-image').length) {
$('.rucaptcha-image').removeAttr('onload');
// 檢查是否已插入過
if (!$('#captcha_audio').length) {
const audioButton = $(`
<button
title="播放驗證碼語音"
type="button"
onclick="document.getElementById('captcha_audio').play();"
class="fas fa-volume-up"
aria-label="播放驗證碼語音"
role="button"
style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">
<span class="sr-only">播放驗證碼語音</span>
</button>
`);
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>');
$('.rucaptcha-image').after(audioButton, audio);
}
}
// <<< 修正結束
});
//萬用表格searchbtn2
@ -2212,6 +2213,28 @@ $(function() {
// 預設 aria-expanded 為 false
$(".searchbtn2").attr("aria-expanded", "false");
});
// ✅ searchbtn2 Tab 鍵聚焦時自動展開 .searchbox
$(document).ready(function() {
function fixSearchbtn2FocusA11y() {
setTimeout(function() {
$('.searchbtn2').on('focus', function() {
var $searchbox = $('.searchbox');
// ✅ 只在收合狀態時才展開,不影響已展開的狀態
if (!$searchbox.is(':visible')) {
$searchbox.slideDown(300, function() {
// ✅ 同步更新 aria-expanded與原本 click 邏輯一致)
$('.searchbtn2').attr('aria-expanded', 'true');
// ✅ 同步加上 ken-click2與原本 click 邏輯一致)
$('.searchbtn2').closest('.ken-click').addClass('ken-click2');
});
}
});
}, 500);
}
fixSearchbtn2FocusA11y();
});
// 強制保持全站search展開
$(document).ready(function () {
@ -3332,12 +3355,16 @@ $(document).ready(function() {
});
//麵包屑無障礙
$(document).ready(function () {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var navLabel = isEn ? 'Breadcrumb navigation' : '麵包屑導覽';
$('.widget-breadcrumb .breadcrumb li:last-child a').attr('aria-current', 'page');
// 若尚未有 nav 包住,自動加上
$('.widget-breadcrumb .breadcrumb').each(function () {
if (!$(this).closest('nav').length) {
$(this).wrap('<nav aria-label="麵包屑導覽"></nav>');
$(this).wrap('<nav aria-label="' + navLabel + '"></nav>');
}
});
});
@ -3368,4 +3395,136 @@ $(document).ready(function () {
});
//banner英文
$(function() {
function fixBannerA11yByLang() {
setTimeout(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
var i18n = {
playControls: isEn ? 'Playback Controls' : '播放控制選項',
resume: isEn ? 'Play' : '繼續播放',
pause: isEn ? 'Pause' : '暫停播放',
prev: isEn ? 'Previous' : '上一張',
next: isEn ? 'Next' : '下一張',
slide: isEn ? 'Slide' : '第',
slideUnit: isEn ? '' : ' 張投影片'
};
$('.w-ba-banner').each(function() {
var $banner = $(this);
// ✅ 播放控制選項 radiogroup label
$banner.find('.controlplay').attr('aria-label', i18n.playControls);
// ✅ 繼續播放按鈕
$banner.find('.resume-slide').attr({
'aria-label': i18n.resume,
'title': i18n.resume
});
$banner.find('.resume-slide p').text(i18n.resume);
// ✅ 暫停播放按鈕
$banner.find('.pause-slide').attr({
'aria-label': i18n.pause,
'title': i18n.pause
});
$banner.find('.pause-slide p').text(i18n.pause);
// ✅ 上一張按鈕
$banner.find('.prev-button').attr('aria-label', i18n.prev);
// ✅ 下一張按鈕
$banner.find('.next-button').attr('aria-label', i18n.next);
// ✅ Pager 按鈕
var $slides = $banner.find('.w-ba-banner__slide');
$banner.find('.banner-pager button').each(function(index) {
var slideTitle = $slides.eq(index).data('cycle-title') || '';
var ariaLabel = isEn
? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '')
: i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : '');
$(this).attr({
'aria-label': ariaLabel,
'title': ariaLabel
});
});
});
// ✅ Cycle2 初始化後也重新處理 Pager因為 pager 是動態產生的)
$('.w-ba-banner .cycle-slideshow').on('cycle-post-initialize cycle-after', function() {
var $banner = $(this).closest('.w-ba-banner');
var $slides = $banner.find('.w-ba-banner__slide');
$banner.find('.banner-pager button').each(function(index) {
var slideTitle = $slides.eq(index).data('cycle-title') || '';
var ariaLabel = isEn
? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '')
: i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : '');
$(this).attr({
'aria-label': ariaLabel,
'title': ariaLabel
});
});
});
}, 800);
}
fixBannerA11yByLang();
});
$(function() {
function fixCheckItemA11y() {
setTimeout(function() {
$('.check-item').each(function() {
var $li = $(this);
var labelText = $li.find('label').text().trim();
// ✅ li 保留 tabindex="0",但補上正確的 aria-label
$li.attr('aria-label', labelText + ',按下 Enter 或空白鍵選取');
// ✅ checkbox 設為 tabindex="-1",讓焦點只停在 li 一次
$li.find('input[type="checkbox"]').attr('tabindex', '-1');
// ✅ li 補上 role="checkbox" 讓螢幕閱讀器正確播報
$li.attr('role', 'checkbox');
// ✅ 初始化 aria-checked 狀態
var isChecked = $li.find('input[type="checkbox"]').prop('checked');
$li.attr('aria-checked', isChecked ? 'true' : 'false');
});
// ✅ li 的 Enter/Space 觸發 click
$('.check-item').off('keydown.a11y').on('keydown.a11y', function(e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
var label = this.querySelector('label');
if (label) {
label.click(); // 直接點 label瀏覽器會自動連動勾選 checkboxclick 事件也會正常往上冒泡
}
}
});
// ✅ click 後同步 aria-checked 狀態
$('.check-item').off('click.a11y').on('click.a11y', function() {
var $li = $(this);
var isChecked = $li.find('input[type="checkbox"]').prop('checked');
$li.attr('aria-checked', isChecked ? 'true' : 'false');
// 同步更新其他 li 的 aria-checked
$('.check-item').not($li).attr('aria-checked', 'false');
});
}, 800);
}
fixCheckItemA11y();
$(window).on('resize', function() {
fixCheckItemA11y();
});
});
}(jQuery, window));

View File

@ -3,7 +3,7 @@
a[accesskey] {
position: absolute;
margin-left: -0.9375em;
color: transparent !important;
color: transparent;
}
#orbit-bar a[accesskey] {

View File

@ -6,6 +6,11 @@
.fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{
font-family: "FontAwesome";
}
li#language-li {
@media(max-width:767px){
display: none !important;
}
}
#orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{
.orbit-bar-search-sign-language{
display: block

View File

@ -307,7 +307,6 @@ a {
}
.i-annc__content-wrap{
padding: 0.5em;
height: 100%;
}
.index-announcement-7{
.i-annc__item{

View File

@ -1,12 +1,19 @@
@charset "utf-8";
@import "../initial";
.label-warning, .badge-warning {
background-color: #c24100!important;
}
button#backbtn{
background: $theme-color-second;
color: #fff !important;
&:hover{
background: $theme-color-hover;
}
}
button.register_this_role.btn.btn-primary{
color: #fff !important;
}
.sign-up{
.checkbox-card li{
background-color: #525252;

View File

@ -36,7 +36,7 @@
&:hover,
&:focus {
opacity: .8;
opacity: .95;
}
}
}

View File

@ -569,7 +569,7 @@
}
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -583,6 +583,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -611,7 +613,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}
@ -785,7 +787,7 @@
}
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -799,6 +801,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -824,7 +828,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}
@ -1139,7 +1143,7 @@
}
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -1153,6 +1157,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -1231,7 +1237,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}
@ -1483,7 +1489,7 @@
}
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -1497,6 +1503,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -1529,7 +1537,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}
@ -1583,7 +1591,7 @@
font-size: 1.6rem!important;
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -1597,6 +1605,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -1644,7 +1654,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}

View File

@ -315,7 +315,7 @@
}
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -329,6 +329,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -354,7 +356,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}

View File

@ -29,9 +29,7 @@
</div>
</div>
<div class="w-ad-banner__pager-2 w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}" data-list="images" data-level="0">
<li><button title="Slide {{slide_number}}" aria-label="Pager"><span style="display: none;">Slide {{slide_number}}</span></button></li>
</div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i>

View File

@ -25,7 +25,7 @@
{{html}}
</div>
<div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i>

View File

@ -26,8 +26,8 @@
</a>
</div>
</div>
<ul class="w-ba-banner__pager-3 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<ul class="w-ad-banner__pager-3 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i>
<p style="display: none;"><%= I18n.t("ad_banner.resume") %></p>
@ -37,6 +37,10 @@
<i aria-hidden="true"></i>
<p style="display: none;"><%= I18n.t("ad_banner.pause") %></p>
</a>
</ul>
<ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-label="<%= I18n.t("ad_banner.prev") %>"></i>
<i class="fa fa-angle-right next-button" aria-label="<%= I18n.t("ad_banner.next") %>"></i>
</ul>
<ul class="button-mid">
<button class="prev-button" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" aria-label="Pager"></button>
@ -44,8 +48,7 @@
</ul>
</div>
<script>
var flag = 1;
$('[data-subpart-id="{{subpart-id}}"] .pause-slide').click(function(){
$('[data-subpart-id="{{subpart-id}}"] .pause-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.resume-slide').removeClass('active')
@ -55,19 +58,13 @@
$(this).addClass('active')
$(this).parents('.controlplay').eq(0).find('.pause-slide').removeClass('active')
});
$('.pause-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('pause');
});
$('.resume-slide').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle('resume');
});
$('.next-button').off('click').on('click',function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
$('[data-subpart-id="{{subpart-id}}"] .next-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("next");
})
$('.prev-button').off('click').on('click',function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
});
})
$('[data-subpart-id="{{subpart-id}}"] .prev-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
});
/* 修正點:處理 Pager 無障礙朗讀文字 */
$('.cycle-slideshow').on('cycle-post-initialize', function(event, optionHash) {
var $container = $(this).closest('.w-ba-banner');
@ -84,3 +81,23 @@
});
});
</script>
<style type="text/css">
.w-ba-banner .controlplay .resume-slide.active i{
color: #32D9C3;
}
.w-ba-banner .controlplay .pause-slide.active i{
color: #ff4500;
}
.w-ba-banner .controlplay{
width: auto;
}
.w-ba-banner .button-mid{
position: absolute;
width: 100%;
height: 0;
top: 50%;
}
.next-button,.prev-button{
cursor: pointer;
}
</style>

View File

@ -1,5 +1,5 @@
<div class="w-ba-banner ba-banner-widget-5">
<div class="w-ba-banner__wrap cycle-slideshow"
<div class="w-ad-banner__wrap w-ba-banner__wrap cycle-slideshow"
data-list="images"
data-level="0"
data-cycle-slides=".w-ba-banner__slide"
@ -10,7 +10,7 @@
data-cycle-timeout="{{timeout}}"
data-cycle-fx="{{ad_fx}}"
data-cycle-pager=".banner_caption_{{subpart-id}}"
data-pager-template="<li><a></a></li>"
data-pager-template=""
data-pager-active-class="active-slide"
data-cycle-swipe=true
data-cycle-swipe-fx="scrollHorz"
@ -33,7 +33,9 @@
</div>
</div>
<div class="w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}"></div>
<div class="w-ad-banner__pager-1 w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}" data-list="images" data-level="0">
<li><button title="Slide {{slide_number}}" aria-label="Pager"><span style="display: none;">Slide {{slide_number}}</span></button></li>
</div>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i>

View File

@ -28,7 +28,7 @@
{{html}}
</div>
<div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay">
<a role="button" class="resume-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "繼續播放" : "resume" %>"><i></i></a>
<a class="pause-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause"%>"><i></i></a>

View File

@ -25,7 +25,7 @@
{{html}}
</div>
<div class="ad-overlay banner-overlay"><div class="ad-overlay2 w-ad-banner__overlay_{{subpart-id}}"></div></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay"><a role="button" href="javascript:;" class="resume-slide active" title="<%= I18n.t("ad_banner.resume") %>"><i aria-hidden="true" aria-label="<%= I18n.t("ad_banner.resume") %>"></i><p style="display: none;"><%= I18n.t("ad_banner.resume") %></p></a><a href="javascript:;" class="pause-slide" title="<%= I18n.t("ad_banner.pause") %>"><i aria-hidden="true" aria-label="<%= I18n.t("ad_banner.pause") %>"></i><p style="display: none;"><%= I18n.t("ad_banner.pause") %></p></a></ul>
<ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-label="<%= I18n.t("ad_banner.prev") %>"></i>

View File

@ -6,7 +6,7 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap ">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -27,7 +27,7 @@
<li class="w-annc__item " >
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap">

View File

@ -22,7 +22,7 @@
<div class="w-annc__item">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -9,7 +9,7 @@
<li class="w-annc__item col-sm-4">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<h4 class="w-annc__entry-title">

View File

@ -6,7 +6,7 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap col-sm-4">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap col-sm-8">
<div class="w-annc__meta">

View File

@ -10,7 +10,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -29,7 +29,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -6,7 +6,7 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap ">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -9,7 +9,7 @@
<li class="w-annc__item col-md-4">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -30,7 +30,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -6,7 +6,7 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap ">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap card">
<div class="w-annc__meta">

View File

@ -23,7 +23,7 @@
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<div class="w-annc__img-wrap col-sm-4">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</a>

View File

@ -3,7 +3,7 @@
<ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item rotate0">
<div class="i-annc__img-wrap bullseye">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</a>
</div>

View File

@ -2,7 +2,7 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item col-md-3 col-sm-3">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap bullseye">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">
</div>

View File

@ -2,7 +2,7 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list" data-level="0" data-list="announcements">
<li class="i-annc__item row">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__img-wrap col-sm-4">
<img class="i-annc__img" src="{{img_src}}" alt="" title="{{img_description}}">

View File

@ -2,7 +2,7 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list" data-level="0" data-list="announcements">
<li class="i-annc__item row">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}" title="{{img_description}}">
<div class="i-annc__content-wrap col-sm-8">
<div class="i-annc__meta">
<span class="i-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -5,7 +5,7 @@
<ul class="w-annc__list" data-level="0" data-list="custom_announcements">
<li class="w-annc__item">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -12,7 +12,7 @@
<ul class="w-annc__list row" data-level="0" data-list="custom_announcements">
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -27,7 +27,7 @@
<div class="w-annc__item">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -9,7 +9,7 @@
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap">
<a href="{{link_to_show}}" title="{{title}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</a>
</div>
<div class="w-annc__content-wrap">

View File

@ -5,7 +5,7 @@
<ul class="w-annc__list" data-level="0" data-list="custom_announcements">
<li class="w-annc__item row">
<div class="w-annc__img-wrap col-sm-4 bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap col-sm-8">
<div class="w-annc__meta">

View File

@ -24,7 +24,7 @@
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<div class="w-annc__img-wrap col-sm-4 bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</li>
</ul>

View File

@ -8,7 +8,7 @@
<ul class="w-annc__list row" data-level="0" data-list="custom_announcements">
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -5,7 +5,7 @@
<ul class="w-annc__list" data-level="0" data-list="event_news">
<li class="w-annc__item">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -28,7 +28,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap">

View File

@ -6,7 +6,7 @@
<li class="w-annc__item row">
<div class="w-annc__img-wrap col-sm-4 bullseye">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</a>
</div>
<div class="w-annc__content-wrap col-sm-8">

View File

@ -10,7 +10,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -29,7 +29,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -21,7 +21,7 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -24,7 +24,7 @@
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<div class="w-annc__img-wrap col-sm-4 bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</li>
</ul>

View File

@ -9,7 +9,7 @@
<li class="w-annc__item col-md-4" data-href="{{link_to_show}}" tabindex="0" role="link" title="{{title}}">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap">

View File

@ -9,10 +9,10 @@
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="widget-content-title">
<span class="title_text">{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="title_text">{{title}}</span>
</div>
</a>
</li>

View File

@ -9,10 +9,10 @@
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="widget-content-title">
<span class="title_text">{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="title_text">{{title}}</span>
</div>
</a>
</li>

View File

@ -9,10 +9,10 @@
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="widget-content-title">
<span class="title_text">{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="title_text">{{title}}</span>
</div>
</a>
</li>