This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import { onBeforeUnmount, onMounted } from 'vue';
|
||||
|
||||
const jumperSelector = '.t-pagination__jump input';
|
||||
|
||||
function labelPaginationJumpers(root: ParentNode) {
|
||||
root.querySelectorAll<HTMLInputElement>(jumperSelector).forEach((input) => {
|
||||
if (!input.getAttribute('aria-label')) input.setAttribute('aria-label', '跳转页码');
|
||||
});
|
||||
}
|
||||
|
||||
export function useTDesignAccessibility() {
|
||||
let observer: MutationObserver | undefined;
|
||||
|
||||
onMounted(() => {
|
||||
labelPaginationJumpers(document);
|
||||
observer = new MutationObserver((records) => {
|
||||
records.forEach((record) => {
|
||||
record.addedNodes.forEach((node) => {
|
||||
if (node instanceof Element) {
|
||||
if (node.matches(jumperSelector)) node.setAttribute('aria-label', '跳转页码');
|
||||
labelPaginationJumpers(node);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => observer?.disconnect());
|
||||
}
|
||||
Reference in New Issue
Block a user