From what I understand Gadget uses some of the operating systems native widgets, if previous experience with similar widget interfaces holds true most of them may be screen reader accessible, but there may be some gaps. In those cases you could use [tolk] as a possible workaround to fill in.
I generally program with Python and don't have much experience using PureBasic. Most of the time I've built GUI's with Pyglet by manually positioning images and handling inputs rather than using widgets with hit detection, though in term's of positioning there isn't too much difference. I've put together a small example after a bit of tinkering, it seems that with PureBasics Gadgets the starting point for 0,0 is in the upper left corner, so the higher the Y value, the lower the image will be on the screen, and the higher the X value the further right it will be. The loop in the example is largely for expedience, if you want more specific text you could reference a list or just not use a loop.
wFlags = #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
; Create a window thats 640x 480y.
wn=OpenWindow(0, 100, 100, 640, 480, "A Simple PureBasic Program", wFlags)
; Use a for loop to create 3 buttons ranging from 0 to 2.
; In the upper left corner of the screen. Each button is
; 64x64, so space each button 64 appart horrizontally so
; they don't overlap one another.
For k = 0 To 2 Step 1
; Create a Quit Button at the bottom left corner of the
; screen using the window size and subtracting the size
; of the button.
; Create main loop
; Look for button events
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
; If first button is pressed
Debug("Button 0 Pressed")
; If second button is pressed
Debug("Button 1 Pressed")
; If third button is pressed
Debug("Button 2 Pressed")
; If Quit button is pressed
Event = #PB_Event_CloseWindow
Until Event = #PB_Event_CloseWindow