The Focus Engine on Apple TV is severely limited by only detecting up/down/left/right movements
| Originator: | dave | ||
| Number: | rdar://23062448 | Date Originated: | 11-Oct-2015 03:42 AM |
| Status: | Open | Resolved: | No |
| Product: | tvOS SDK | Product Version: | tvOS 9.0 beta 3 (13T5379f) |
| Classification: | UI/Usability | Reproducible: | Yes |
Summary: When using the focus engine in tvOS to focus UI elements on the screen, the system only recognizes up/down/left and right. Diagonal movements on the supplied remote, and third party game controllers are translated to only one of up/down/left/right. Due to the logic of the focus engine selecting the next view based on the relative position of the previous view, it can be near impossible to have the system focus on certain elements. I've attached a sample project that shows a view configuration similar to what I'm using in an app that is basically unusable on tvOS. There's a center button, and then 6 buttons spaced equally around the center button. (Basically a circle around the center). Because the upper and lower buttons don't align with the center button, or the left/right buttons, there's no way for the user to intentionally focus on them. If you randomly swipe around on the remote, you may eventually, randomly get the system to focus on those buttons, but then, you can't get back to the center/left/right ones. It's a very frustrating experience for the user, especially since they're swiping diagonally towards the button they want to focus on. The docs at https://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/WorkingwiththeAppleTVRemote.html (under User-Generated Focus Movement) indicate that diagonal directions are intended, but they just don't work. Further, the UIFocusHeading enum/OptionSetType's don't even include options for diagonal directions. As a workaround, it's possible for us to create various UIFocusGuide's to try and adjust the focus engine's movements, however in practice, they don't work very well. Placing one above the center button in this case, we could have it direct the focus to the button in the top left. But doing this means a user trying to focus on the top right button, will swipe diagonally up/right, and have the focus move to the top left button, basically the opposite direction of what they intended. It feels very clunky to the user. It's so frustrating in fact, that I've had beta testers just give up and quit. Steps to Reproduce: Run the attached sample project on a real device. Try and move the focus around to the various buttons on screen. See how difficult it is to get the button you want to focus on, in focus. Expected Results: Should be able to focus on any of the buttons in the view easily. There should be at least 8 possible directions of movement, up left, up, up right, left, right, down left, down, down right. Actual Results: You can only move the focus up, down, left or right. Making it near impossible to focus on the up left, up right, down left or down right buttons. And if you do eventually get the focus to move to one of those buttons, it's then very difficult to focus back on the left, center or right buttons. Version: tvOS 9.0 beta 3 (13T5379f) Notes: Configuration: Apple TV Dev Kit Attachment: http://cl.ly/2t1D3E1h1U2h
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!