1
- document . addEventListener ( 'DOMContentLoaded' , function ( ) {
1
+ function fixAccessibility ( ) {
2
2
// Fix overlay <label> elements by replacing them with <div>
3
3
document . querySelectorAll ( 'label.overlay' ) . forEach ( function ( label ) {
4
4
var div = document . createElement ( 'div' ) ;
@@ -25,8 +25,10 @@ document.addEventListener('DOMContentLoaded', function() {
25
25
} ) ;
26
26
27
27
// Inject CSS for .sr-only (optional, in case you use it elsewhere)
28
- var style = document . createElement ( 'style' ) ;
29
- style . innerHTML = `
28
+ if ( ! document . getElementById ( 'sr-only-style' ) ) {
29
+ var style = document . createElement ( 'style' ) ;
30
+ style . id = 'sr-only-style' ;
31
+ style . innerHTML = `
30
32
.sr-only {
31
33
position: absolute !important;
32
34
width: 1px !important;
@@ -39,5 +41,15 @@ document.addEventListener('DOMContentLoaded', function() {
39
41
white-space: nowrap !important;
40
42
}
41
43
` ;
42
- document . head . appendChild ( style ) ;
44
+ document . head . appendChild ( style ) ;
45
+ }
46
+ }
47
+
48
+ // Run once at DOMContentLoaded (for static content)
49
+ document . addEventListener ( 'DOMContentLoaded' , fixAccessibility ) ;
50
+
51
+ // Also run when new nodes are added (for dynamic content)
52
+ const observer = new MutationObserver ( function ( mutationsList , observer ) {
53
+ fixAccessibility ( ) ;
43
54
} ) ;
55
+ observer . observe ( document . body , { childList : true , subtree : true } ) ;
0 commit comments