ionic-team / ionic-team/ionic-framework
feat(datetime/picker): public API to programmatically enter numeric input mode
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- TypeScript
- Star
- 52.7k
- Fork
- 13.3k
- Merge trung bình
- 1 ngày 14 giờ
- Pull request đã merge (30 ngày)
- 50
Mô tả
Prerequisites
- I have read the Contributing Guidelines.
- I agree to follow the Code of Conduct.
- I have searched for existing issues that already include this feature request, without success.
Describe the Feature Request
ion-datetime (wheel) + ion-picker supports a “numeric input mode” when the user taps a numeric column: the picker focuses an internal , shows the OS keypad, and lets users type to update both hour and minute columns.
There’s currently no public API to trigger the same behavior programmatically (e.g., from a button or accessibility shortcut).
Describe the Use Case
-
Accessibility: provide a keyboard/assistive-tech control to enter numeric mode.
-
UX: offer an “Edit time” button that behaves exactly like a tap.
-
Automated testing & consistency across platforms.
Describe Preferred Solution
Expose a safe, documented method:
// on ion-picker (and used by ion-datetime internally)
enterInputMode(column?: HTMLIonPickerColumnElement | 'hour' | 'minute', options?: { focus?: boolean }): void;
exitInputMode(): void;
// or on ion-datetime (delegates to internal picker)
enterInputMode(scope?: 'all' | 'hour' | 'minute', options?: { focus?: boolean }): void;
Behavior should mirror a real tap:
-
Set internal input-mode state (multi-column when scope === 'all').
-
Emit the same event columns currently listen for.
-
focus the hidden input to open the keypad.
Describe Alternatives
No response
Related Code
Any datetime/picker
Additional Information
Without a public API, it’s impossible to trigger numeric input mode via assistive technology (e.g., VoiceOver/ TalkBack actions, hardware keyboard shortcuts, or custom accessibility buttons). This can prevent certain users from easily adjusting time values, especially those with motor impairments who find wheel scrolling difficult.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách đọc phần triển khai chế độ nhập số của ion-picker và ion-datetime được tham chiếu trong issue, bao gồm trạng thái input nội bộ và các event được kích hoạt bởi một lần chạm thực tế. Công việc được xem là hoàn tất khi có một API công khai được ghi lại tài liệu để vào và thoát, với scope và các tùy chọn focus được yêu cầu, đồng thời việc sử dụng theo cách lập trình phản ánh hành vi hiện có của chế độ số.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- typescript
- Lĩnh vực
- accessibility, frontend
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100