@@ -102,6 +102,22 @@ export default class Core {
102102
103103 this . setSVGDimensions ( )
104104
105+ // foreignObject must be added first (at the back in z-order) to prevent blocking interactions
106+ gl . dom . elLegendForeign = document . createElementNS ( gl . SVGNS , 'foreignObject' )
107+ Graphics . setAttrs ( gl . dom . elLegendForeign , {
108+ x : 0 ,
109+ y : 0 ,
110+ width : gl . svgWidth ,
111+ height : gl . svgHeight ,
112+ } )
113+
114+ gl . dom . elLegendWrap = document . createElement ( 'div' )
115+ gl . dom . elLegendWrap . classList . add ( 'apexcharts-legend' )
116+
117+ gl . dom . elWrap . appendChild ( gl . dom . elLegendWrap )
118+ gl . dom . Paper . node . appendChild ( gl . dom . elLegendForeign )
119+
120+ // Add accessibility elements after foreignObject to maintain proper z-order
105121 if ( cnf . chart . accessibility . enabled ) {
106122 const ariaLabel = this . getAccessibleChartLabel ( )
107123
@@ -110,10 +126,11 @@ export default class Core {
110126 'aria-label' : ariaLabel ,
111127 } )
112128
113- // Add title element for screen readers
129+ // Add title element for screen readers (after foreignObject)
114130 const titleEl = document . createElementNS ( gl . SVGNS , 'title' )
115131 titleEl . textContent = cnf . title . text || 'Chart'
116- gl . dom . Paper . node . insertBefore ( titleEl , gl . dom . Paper . node . firstChild )
132+ // Insert after foreignObject but before other elements
133+ gl . dom . Paper . node . insertBefore ( titleEl , gl . dom . elLegendForeign . nextSibling )
117134
118135 // Add desc element when description is provided
119136 if ( cnf . chart . accessibility . description ) {
@@ -123,20 +140,6 @@ export default class Core {
123140 }
124141 }
125142
126- gl . dom . elLegendForeign = document . createElementNS ( gl . SVGNS , 'foreignObject' )
127- Graphics . setAttrs ( gl . dom . elLegendForeign , {
128- x : 0 ,
129- y : 0 ,
130- width : gl . svgWidth ,
131- height : gl . svgHeight ,
132- } )
133-
134- gl . dom . elLegendWrap = document . createElement ( 'div' )
135- gl . dom . elLegendWrap . classList . add ( 'apexcharts-legend' )
136-
137- gl . dom . elWrap . appendChild ( gl . dom . elLegendWrap )
138- gl . dom . Paper . node . appendChild ( gl . dom . elLegendForeign )
139-
140143 gl . dom . elGraphical = gl . dom . Paper . group ( ) . attr ( {
141144 class : 'apexcharts-inner apexcharts-graphical' ,
142145 } )
0 commit comments