I am testing the accessibility feature available in the Settings app called "Speak Screen". The help text in the Setting app states that swiping down with two fingers will cause the screen content to be spoken. However, I've been unable to get this feature to work. Every time I try the double finger swipe down, it behaves the same as the single finger swipe down gesture. Usually this manifests as making scroll views bounce.
I've tried toggling the feature on and off, turning off Reachability, and rebooting my phone, but I can't get the speak screen gesture to work. If I access the speak screen feature from the "Speech Controller" button, then the screens content is spoken, as expected, so I know the feature is enabled. It's just the gesture that doesn't work.
Is there something else I need to do to get this gesture to work? I don't want to tell my users to turn this feature on if I can't verify that the gesture will work with my app.
                    
                  
                Explore best practices for creating inclusive apps for users of Apple accessibility features and users from diverse backgrounds.
  
    
    Selecting any option will automatically load the page
  
  
  
  
    
  
  
          Post
Replies
Boosts
Views
Activity
                    
                      Since UITextView does not support the zoom function, the zoom function of UITextView with addSubview is used in UIScrollView.
However, when I use the link here, the text behind it is missing.
Ex) https://appstoreconnect.apple.com/login\nApple Developer Login
-> The text “Apple Developer Login” does not appear.
If anyone has experienced the same problem as me or knows a solution, please leave a comment.
Note)
It is working normally in iOS16, but the text behind the link disappears in iOS18.
The text is not visible, but you can copy it and paste it to retrieve the missing text.
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
              
  
  
    
    
  
  
              
                
                
              
            
          
                    
                      I need to direct text-to-speech generated audio from my app simultaneously to a bluetooth speaker device AND to the internal iPad speaker. The app uses AVSpeechSynthesizer and several third party speech engines. How best to do this?
I noticed the outputChannels property on AVSpeechSynthesizer...are there any examples of how to use this?
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
              
  
  
    
    
  
  
              
                
                
              
            
          
                    
                      I have a Twitter account that I registered with Apple id and I still don't know the PIN and I'm having a problem with it knowing the PIN I need help
privaterelay.appleid.com
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
              
  
  
    
    
  
  
              
                
                
              
            
          
                    
                      I’m trying to customize the keyboard focus appearance in SwiftUI.
In UIKit (see WWDC 2021 session Focus on iPad keyboard navigation), it’s possible to remove the default UIFocusHaloEffect and change a view’s appearance depending on whether it has focus or not.
In SwiftUI I’ve tried the following:
.focusable() // .focusable(true, interactions: .activate)
.focusEffectDisabled()
.focused($isFocused)
However, I’m running into several issues:
.focusable(true, interactions: .activate) causes an infinite loop, so keyboard navigation stops responding
.focusEffectDisabled() doesn’t seem to remove the default focus effect on iOS
Using @FocusState prevents Space from triggering the action when the view has keyboard focus
My main questions:
How can I reliably detect whether a SwiftUI view has keyboard focus? (Is there an alternative to FocusState that integrates better with keyboard navigation on iOS?)
What’s the recommended way in SwiftUI to disable the default focus effect (the blue overlay) and replace it with a custom border?
Any guidance or best practices would be greatly appreciated!
Here's my sample code:
import SwiftUI
struct KeyboardFocusExample: View {
    var body: some View {
        // The ScrollView is required, otherwise the custom focus value resets to false after a few seconds. I also need it for my actual use case
        ScrollView {
            VStack {
                Text("First button")
                    .keyboardFocus()
                    .button {
                        print("First button tapped")
                    }
                
                Text("Second button")
                    .keyboardFocus()
                    .button {
                        print("Second button tapped")
                    }
            }
        }
    }
}
// MARK: - Focus Modifier
struct KeyboardFocusModifier: ViewModifier {
    @FocusState private var isFocused: Bool
    
    func body(content: Content) -> some View {
        content
            .focusable() // ⚠️ Must come before .focused(), otherwise the FocusState won’t be recognized
//            .focusable(true, interactions: .activate) // ⚠️ This causes an infinite loop, so keyboard navigation no longer responds
            .focusEffectDisabled() // ⚠️ Has no effect on iOS
            .focused($isFocused)
        
            // Custom Halo effect
            .padding(4)
            .overlay(
                RoundedRectangle(cornerRadius: 18)
                    .strokeBorder(
                        isFocused ? .red : .clear,
                        lineWidth: 2
                    )
            )
            .padding(-4)
    }
}
extension View {
    public func keyboardFocus() -> some View {
        modifier(KeyboardFocusModifier())
    }
}
// MARK: - Button Modifier
/// ⚠️ Using a Button view makes no difference
struct ButtonModifier: ViewModifier {
    let action: () -> Void
    
    func body(content: Content) -> some View {
        content
            .contentShape(Rectangle())
            .onTapGesture {
                action()
            }
            .accessibilityAction {
                action()
            }
            .accessibilityAddTraits(.isButton)
            .accessibilityElement(children: .combine)
            .accessibilityRespondsToUserInteraction()
    }
}
extension View {
    public func button(action: @escaping () -> Void) -> some View {
        modifier(ButtonModifier(action: action))
    }
}
                    
                  
                
                    
                      Merhaba , bir apple mağaza kurulumu yaptık fakat yaptığımız ödemenin faturası henüz gelmedi. Faturaya nereden ulaşacağım hakkında bilgi verebilir misiniz?
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
              
  
  
    
    
  
  
              
                
                
              
            
          
                    
                      listbox not announcing selected or not selected option and which place it takes in the listbox
Works correctly on macOS safari/chrome/firefox,
Works bad on everything iOS18.1.1
I have a video for this behaviour but interface does not really allow the upload
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
              
  
  
    
    
  
  
              
                
                
              
            
          
                    
                      I try with this URL App-prefs:General&path=Date&Time it work on iOS 17 but not with iOS 18
                    
                  
                
                    
                      I want to expose few elements for accessibility alone and other for automation alone. But I can only accessibility elements in Accessibility Inspector but can't see Automation Elements
 self.view.accessibilityElements = [loginButton as Any,
                                                          registerButton as Any,
                                                          closeButton as Any]
self.view.automationElements = [claimLabel as Any,
                                                           loginButton as Any,
                                                           registerButton as Any,
                                                           intoductionImage as Any,
                                                           closeButton as Any])
                    
                  
                
                    
                      In our application we are using a pop over view and we have enabled the accessibility VoiceOver, When user navigating inside the popover and reached to the last element that time with the right swipe we need to dismiss the popover.
                    
                  
                
                    
                      I remember that Vision Pro's dwell control could previously be set to 0.1 seconds, but now it can't. Is there a way to adjust it?
                    
                  
                
                    
                      When using iOS VoiceOver to navigate a webpage, selecting a  element correctly activates the :focus-visible state. However, when VoiceOver moves to a non-button element (such as a  or ), the previously focused button retains its :focus-visible state. The focus indicator only updates when VoiceOver moves to another .
This behavior can be confusing for screen reader users, as it creates the appearance of multiple elements being focused simultaneously. It also differs from expected keyboard navigation behavior, where focus styles typically update as soon as the user moves to a new interactive element.
Is this an intentional VoiceOver behavior, or could this be a bug? If intentional, is there a recommended workaround to ensure correct focus indication when moving between different types of elements?
Steps to Reproduce:
Enable VoiceOver on an iOS device.
Navigate using swipe gestures or explore-by-touch to focus on a .
Observe that the button correctly receives the :focus-visible styling.
Move to a non-button element (e.g., a  with tabindex="0" or an ).
Notice that the button still retains its :focus-visible state, even though VoiceOver has moved to a new element.
Expected Behavior:
The previously focused  should lose its :focus-visible state when VoiceOver moves to a different interactive element, just as it does when using keyboard navigation.
Actual Behavior:
The :focus-visible state remains on the previously focused button unless VoiceOver moves to another . This can create confusion by displaying multiple focus indicators at once.
Tested On:
iOS 17.7, 18.3.1
iOS Safari
iPhone 11 Pro, iPhone 14 Pro Max
                    
                  
                
                    
                      I'm developing a calculator app and working to ensure a great experience for both VoiceOver and Braille display users.
For expressions like (2+3)×5, I need two different accessibility outputs:
VoiceOver (spoken): A descriptive string like “left paren two plus three right paren times five,” provided via .accessibilityValue. I'm using a custom spellOut function since VoiceOver doesn't announce parentheses—which are kind of important when doing math!
Braille (symbolic): The literal math string (2+3)×5, provided using .accessibilityCustomContent("", ...), with an empty label so it’s not spoken aloud.
The issue: I don’t have access to a Braille display device and Xcode’s Accessibility Inspector doesn’t seem to show the custom content.
Is there any way to confirm that custom Braille content is being set correctly in Simulator or with other tools?
Or…is there a "math mode" in VoiceOver that forces it to announce parentheses?
Any advice or workarounds would be much appreciated!
Thanks,
Uhl
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            External Accessory
          
        
        
      
      
    
      
      
      
        
          
            iOS
          
        
        
      
      
    
      
      
      
        
          
            Accessibility
          
        
        
      
      
    
      
      
      
        
          
            SwiftUI
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      Should I allow the CIJSULAgent to find devices on local network?
                    
                  
                
                    
                      i would like to ask what are the new touchpad shortcuts in the latest os for ipad using a trackpad. The three fingers swipe to the right and left seemed to be removed. Thank you
                    
                  
                
                    
                      My husband and I have the same iPhones. We both have location sharing on. When he uses Find My, he can see my location. He has shared his location with me, but my phone always says “No location found,” We have the exact same settings on our phones and have followed the instructions to use Find My. Is there something wrong with my phone since I cannot see his location? I have no trouble seeing the location of another family member. Or is something wrong with my husbands phone? This is so frustrating.
                    
                  
                
                    
                      I am building a language learning app for a Unlisted Primary Language. Any suggestions or heads ups? My plan is to select english and go with it.
Its unfortunate that I have to list a language learning app incorrectly and a  tag for that language probably does not exist across the apple system.
                    
                  
                
                    
                      I am encountering the following issue while working with app group preferences in my Safari web extension:
Couldn't read values in CFPrefsPlistSource<0x3034e7f80> (Domain: [MyAppGroup], User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd.
I am trying to read/write shared preferences using UserDefaults with an App Group but keep running into this error. Any guidance on how to resolve this would be greatly appreciated!
Has anyone encountered this before? How can I properly configure my app group preferences to avoid this issue?
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
                Tags:
              
              
  
  
    
      
      
      
        
          
            Swift Packages
          
        
        
      
      
    
      
      
      
        
          
            Messages
          
        
        
      
      
    
      
      
      
        
          
            Xcode
          
        
        
      
      
    
      
      
      
        
          
            Group Activities
          
        
        
      
      
    
  
  
              
                
                
              
            
          
                    
                      As part of apple pay implementation we are trying to create a merchant session by trying to connect to apple endpoint https://apple-pay-gateway-cert.apple.com/paymentservices/startSession.
While trying to do so we are facing an error “An error occurred while sending the request. The request was aborted: Could not create SSL/TLS secure channel.” .
I call the validation url by passing to a C# .Net Framework 4.8 Web API. The API setups an HttpClient with the Merchant Identity Validation Certificate found in my apple account and calls the validation url passing in the required Json Validation Object. When I call PostAsync() I get an exception with the above error message
Code is working  successfully on my local machine but facing this issue while deployed on Dev / Model  environment for testing.
We have used Azure app service for deployment and TLS version 1.2 already present here.
We have used the Merchant Identity certificate that was issued and have also checked with networking and infrastructure team to make its not an issue from our side.
Does anyone have any other idea what could be causing this error.
Thank you,
Supriya
                    
                  
                
              
                
              
              
                
                Topic:
                  
	
		Accessibility & Inclusion
  	
                
                
                SubTopic:
                  
                    
	
		General
		
  	
                  
                
              
              
              
  
  
    
    
  
  
              
                
                
              
            
          
                    
                      We have get the response from Apple pay after the the customer doing the face ID & touch ID authorization.
But the shiping contact is not complete, for examble:
` {
        "addressLines": [
            "1************ kwy"
        ],
        "administrativeArea": "FL",
        "country": "",
        "countryCode": "", 
        "emailAddress": "S*********le.com",
        "familyName": "******i",
        "givenName": "******m",
        "locality": "*******s",
        "phoneNumber": "+*******79",
        "phoneticFamilyName": "",
        "phoneticGivenName": "",
        "postalCode": "*****3",
        "subAdministrativeArea": "",
        "subLocality": ""
    },`
as the documents said, it should be the completed shipping contact,
but the country & countrycode is null
https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment/1916097-shippingcontact