Such situations occur when axis' labels have a property called useHTML set to true. In a nutshell, the reason for labels display like that is because HTML elements are always laid out on top of all other SVG content. A solution for this is to use the outside property or create a custom HTML tooltip with a higher z-index than the axis' labels.

For more information, please visit the documentation article Labels and string formatting where this case is described further in the HTML in Highcharts subsection.