Accessibility (Voice Over) mit Sprite Kit

Ich versuche, die Unterstützung für Voice Over in einem Puzzlespiel mit festem Brett hinzuzufügen. Allerdings habe ich Probleme, @ zu bekommUIAccessibilityElements um aufzutauchen.

Right now I'm overridingaccessibilityElementAtIndex, accessibilityElementCount undindexOfAccessibilityElement in meiner SKScene.

Sie geben ein Array von Elementen zurück, auf die zugegriffen werden kann:

func loadAccessibleElements()
{
    self.isAccessibilityElement = false

    let pieces = getAllPieces()

    accessibleElements.removeAll(keepCapacity: false)
    for piece in pieces
    {
        let element = UIAccessibilityElement(accessibilityContainer: self.usableView!)

        element.accessibilityFrame = piece.getAccessibilityFrame()
        element.accessibilityLabel = piece.getText()
        element.accessibilityTraits = UIAccessibilityTraitButton
        accessibleElements.append(element)
    }
}

Wo Stück ist eine Unterklasse vonSKSpriteNode undgetAccessibilityFrame ist definiert

func getAccessibilityFrame() -> CGRect
{
    return parentView!.convertRect(frame, toView: nil)
}

Right now one (falsch dimensioniert)accessibilityas @ -Element scheint an der falschen Stelle auf dem Bildschirm zu erscheinen.

Könnte mich jemand in die richtige Richtung weisen?

Danke vielmal

BEARBEITEN
Ich habe versucht, ein Hack-ish zu umgehen, indem ich ein UIView über dem SKView mit UIButton-Elementen an der gleichen Stelle platziert habe wie die SKSpriteNodes. Die Barrierefreiheit will jedoch immer noch nicht funktionieren. Die Ansicht wird als solche geladen:

func loadAccessibilityView()
{
    view.isAccessibilityElement = false
    view.accessibilityElementsHidden = false
    skView.accessibilityElementsHidden = false
    let accessibleSubview = UIView(frame: view.frame)
    accessibleSubview.userInteractionEnabled = true
    accessibleSubview.isAccessibilityElement = false
    view.addSubview(accessibleSubview)
    view.bringSubviewToFront(accessibleSubview)

    let pieces = (skView.scene! as! GameScene).getAllPieces()
    for piece in pieces
    {
        let pieceButton = UIButton(frame: piece.getAccessibilityFrame())
        pieceButton.isAccessibilityElement = true
        pieceButton.accessibilityElementsHidden = false
        pieceButton.accessibilityTraits = UIAccessibilityTraitButton
        pieceButton.setTitle(piece.getText(), forState: UIControlState.Normal)
        pieceButton.setBackgroundImage(UIImage(named: "blue-button"), forState: UIControlState.Normal)
        pieceButton.alpha = 0.2
        pieceButton.accessibilityLabel = piece.getText()
        pieceButton.accessibilityFrame = pieceButton.frame
        pieceButton.addTarget(self, action: Selector("didTap:"), forControlEvents: UIControlEvents.TouchUpInside)
        accessibleSubview.addSubview(pieceButton)
    }

    UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil)

}

Die Schaltflächen sind korrekt platziert, die Eingabehilfen funktionieren jedoch überhaupt nicht. Etwas scheint zu verhindern, dass es funktioniert.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage