I have a page on an iOS app, that really consists of a series of custom buttons. The buttons are in a view hierarchy that consists of two labels and an image view behind them.
For accessibility support, I have made the two labels hidden to the accessibility system, to prevent accessibility focus from going onto each of the labels rather than the parent button. Accordingly, I have made the contents of one of these labels the accessibility label of the button, and the other the button's accessibility hint. This works well in VoiceOver, focus is moving between the buttons, with explanations of what they are and what they do.
Now when I use Speak Screen, I end with up a result of "No speakable content could be found on the screen." I expected it to speak the contents of the screen. Part of this is because I have set the labels to be hidden to accessibility, but this should be compensated for by speaking accessibility labels of the buttons.
Looking over some other apps and quick tests I have been doing, I am frequently seeing that Speak Screen seems to skip over buttons. I could give my buttons the accessibility trait of 'Static Text' in addition to button, but this seems like a misuse of the traits.
Is it the intended behaviour of Speak Screen to skip buttons or other controls? Is there a way to prevent the individual labels from gaining accessibility focus, while still being visible to Speak Screen?