Skip to content

FB17946270: Vertical offset between finger and selection is unnecessarily large with large text #671

Open
@douglashill

Description

@douglashill

Submission Date

2025-06-11

Status

Open

Area

UIKit

Operating System Version

iOS 26

Type

Suggestion

Description

Text selection on iOS uses a vertical offset between the drag handles and the touch location to help avoid the user‘s finger obscuring the text being selected. However, this offset seems to scale with the text size, which can result in a larger offset than necessary so the interaction feels less direct. The user’s finger is of constant size.

Steps:

  1. Create a UITextView or a custom implementation of UITextInput + UITextInteraction. This is already set up with UITextView in the attached sample project, The whole project is only a few lines of code.
  2. Make a selection
  3. Drag the handles at the start or end of the selection. See attached video.

Expected:

The handles should be slightly away from the touch so a typical finger size won’t obscure text.

Actual:

The gap between the touch and the handles can be several times as much as necessary to avoid obscuring the text being selected.

Notes:

This is a longstanding issue not new in iOS 26.

Our real project doesn’t use UITextView but uses UITextInput + UITextInteraction because we make an SDK for viewing PDF documents so use our own rendering. You can see this in our app at https://apps.apple.com/app/id1120099014 We can provide a more complex sample project using UITextInput + UITextInteraction if that’s helpful. From the outside, it looks like this may be one underlying issue even though it occurs using two APIs.

Our real project allows zooming in, so this occurs there even if the text is small when zoomed out. Similar behaviour occurs in Safari when zooming in.

vertical-offset.mp4

Sample project

Keywords

No response

Prerequisites

  • The title follows the format FB<number>: <title>
  • I will keep this issue updated with Apple's responses

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions