рд╡реЙрдпрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдФрд░ рд╡реЙрдЗрд╕рдУрд╡рд░: рдмреНрд▓рд╛рдЗрдВрдб рдпрд╛ рд╕реНрдЯрд┐рд▓ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ

рдХрд▓реНрдкрдирд╛ рдХрд░реЛ рдХрд┐ рддреБрдо рдЕрдВрдзреЗ рд╣реЛред рдЖрдк рдЗрд╕ рдЪрд┐рддреНрд░ рдХреЛ рдХреИрд╕реЗ рд╕реБрдиреЗрдВрдЧреЗ: ┬л D O . , VoiceOver. . ┬л ┬╗. ┬л D O . , VoiceOver. . ┬л ┬╗.


рдХрд╛рд▓реЗ рдЪрд╢реНрдореЗ рдореЗрдВ рдбреА рдЕрдХреНрд╖рд░ рдФрд░ рдПрдХ рд╕рдлреЗрдж рдЫрдбрд╝реА рдФрд░ рд╡реНрд╣реАрд▓рдЪреЗрдпрд░ рдореЗрдВ рдУ рдЕрдХреНрд╖рд░ рдПрдХ рдмрдбрд╝реЗ рдлреЛрди рдХреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдлреЛрди рд╕реНрдХреНрд░реАрди рдкрд░ рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдРрдк рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ рдЬреЛ рд╡реЙрдпрд╕ рдУрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд┐рдЬреНрдЬрд╛ рдореЗрдиреВ рд╕реЗрд▓ рдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд░рддрд╛ рд╣реИред рддрд╕реНрд╡реАрд░ рдХреЛ рдкреБрд░рд╛рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдлреЛрди рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╣рд░ рджрд┐рди рджрд░реНрдЬрдиреЛрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВ рд╣рд░ рджрд┐рди рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬреЛ рдлреЛрди рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рде рдореЗрдВ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ? IOS рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╕реАрдорд┐рдд рдЧрддрд┐рд╢реАрд▓рддрд╛, рджреГрд╖реНрдЯрд┐ рдФрд░ рд╢реНрд░рд╡рдг рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдореЗрдВ рдЗрди рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЦреЛрд▓рддреА рд╣реИрдВред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдЖрдк рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдореЛрдиреЛ-рдСрдбрд┐рдпреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдирд┐рдореЗрд╢рди рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд┐рдирд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдХрд╛рди рд╕реЗ (рдЕрдВрдзреЗ рдХреЗ рд▓рд┐рдП) рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЗрд╡рд▓ рдЖрд╡рд╛рдЬ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ (рдпрджрд┐ рд╡реНрдпрдХреНрддрд┐ рдЖрдВрджреЛрд▓рди рдореЗрдВ рд╕реАрдорд┐рдд рд╣реИ)ред


рдЖрдк рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ рдЧреЗрдо рдХреЛ рднреА рдЕрдкрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВред


рдЖрд╡рд╛рдЬ рдирд┐рдпрдВрддреНрд░рдг: рдЕрдкрдиреА рдЖрд╡рд╛рдЬ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ


IOS 13 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ рдлреЛрди рдХреЛ рдЖрд╡рд╛рдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЙрдпрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╕реАрдорд┐рдд рдЧрддрд┐рд╢реАрд▓рддрд╛ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдирдпрд╛ рд╕реНрддрд░ рджреЗрддрд╛ рд╣реИред рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ, рдЗрд╕рдореЗрдВ Apple рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:



рдЖрдк рдЗрди рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдлрд╝реЛрди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


  1. рдЖрдкрдХреЗ iPhone рдкрд░ рд╡реЙрдпрд╕ рдиреЗрд╡рд┐рдЧреЗрд╢рди (рдЕрдкрдиреЗ iPhone рдкрд░ рд╡реЙрдпрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ)ред
  2. рдЕрдкрдиреЗ iPhone рдкрд░ рдзреНрд╡рдирд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рд╢реНрд░реБрддрд▓реЗрдЦ рдФрд░ рд╕рдВрдкрд╛рджрди рдкрд╛рда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ ред

рдЗрд╕ рдлреАрдЪрд░ рдХреЛ рдЗрдиреЗрдмрд▓ рдХрд░рдХреЗ рдЖрдк рдлреЛрди рдореЗрдВ рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд╢, рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд╕рд╛рде рдЕрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рдирд▓ рдЦрд░реАрдж", рдФрд░ рдЦрд░реАрдж рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рдмрдЯрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╢рдмреНрджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо рдХреЗ рдмрд┐рдирд╛), "рд╢реЛ рдирдВрдмрд░" рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдмрдЯрди рдкрд░ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛрдВрдЧреЗред рдЕрдм рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рдкрд╛рдВрдЪ рдЯреИрдк рдХрд░реЗрдВ" рдФрд░ рдкрд╛рдВрдЪрд╡реЗрдВ рдмрдЯрди рдХреЛ рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдЬрдЯрд┐рд▓ рддрддреНрд╡реЛрдВ (рдорд╛рдирдЪрд┐рддреНрд░, рдЪрд╛рд░реНрдЯ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлреЛрди рдХреЛ рдЧреНрд░рд┐рдб рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдореИрдк рдкрд░ рдЬрдЧрд╣ рдХрд╛ рдЪрдпрди рд╕реЗрд▓ рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрд▓рдмреНрдз рдЗрд╢рд╛рд░реЗ рд╣реИрдВред рдЖрдк рдлрд╝реЛрди рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╕рднреА рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реЗрдЯрд┐рдВрдЧ тЖТ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА тЖТ рд╡реЙрдЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ тЖТ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрдорд╛рдВрдбред


рд╡реЙрдЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рддреАрди рдЙрджрд╛рд╣рд░рдг: рдЬрдм рдпрд╣ рд▓реЗрдмрд▓, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЧреНрд░рд┐рдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ


VoiceOver: рдЗрд╢рд╛рд░реЛрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦреЗрдВ


рдиреЗрддреНрд░рд╣реАрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ VoiceOver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рд╕реЗ рдХреБрдЫ рдЕрдВрддрд░:


  1. рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЙрдВрдЧрд▓реА рд╕реНрд▓рд╛рдЗрдбред рдЬрдм рдмрдЯрди рдкрд░ рдЙрдВрдЧрд▓реА рд╣реЛрддреА рд╣реИ, рддреЛ рдлреЛрди рдЙрд╕рдХрд╛ рдирд╛рдо рдХрд╣рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рдХрд╛рд▓реЗ рдлреНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдХрд╣реАрдВ рднреА рджреЛ рдмрд╛рд░ рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдЖрд╕рдиреНрди рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрд╡рд╛рдЗрдк рдмрд╛рдПрдВ рдпрд╛ рджрд╛рдПрдВ рдХреЗ рд╕рд╛рде рднреА рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрд╢рд╛рд░реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрдЯрд┐рд▓ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ред
  3. рд╕реНрдХреНрд░реАрди рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреАрди рдЕрдВрдЧреБрд▓рд┐рдпреЛрдВ рдХреЛ рддреАрди рдмрд╛рд░ рдЯреИрдк рдХрд░реЗрдВред

рдЙрдкрд▓рдмреНрдз рдЗрд╢рд╛рд░реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреАред


рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░реЗрдВ


рд╡реЙрдЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдФрд░ рд╡реЙрдЗрд╕рдУрд╡рд░ рдПрдХ рд╣реА рддрдХрдиреАрдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдХреЛ рдПрдбрд╛рдкреНрдЯ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рд╕рдкреЛрд░реНрдЯ рдорд┐рд▓рддрд╛ рд╣реИред


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╢реЙрд░реНрдЯрдХрдЯ (рддреНрд╡рд░рд┐рдд рдЪрд╛рд▓реВ) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛред


рдХрд╣рд╛рдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ : рдЖрдк рд╕рд┐рд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рд╕реЗрдЯрд┐рдВрдЧреНрд╕ тЖТ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА тЖТ рд╡реЙрдпрд╕рдУрд╡рд░) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╢реЙрд░реНрдЯрдХрдЯ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ : рддреНрд╡рд░рд┐рдд рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рд╣реЛрдо рдмрдЯрди рдХреЛ рддреАрди рдмрд╛рд░ рджрдмрд╛рдХрд░ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ (рдпрд╛ рдПрдХреНрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП "рдмрдВрдж рдХрд░реЗрдВ"): рд╕реЗрдЯрд┐рдВрдЧреНрд╕ тЖТ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА тЖТ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рд╢реЙрд░реНрдЯрдХрдЯ тЖТ VoiceOver рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рдХрд░реЗрдВред


рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рд╕рд┐рджреНрдзрд╛рдВрдд)


рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХрд╛ рдЖрдзрд╛рд░ UIAccessibilityElement рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред VoiceOver рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП VoiceOver рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


  • рдмрдЯрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВред
  • рдорд╛рди рдЬреЛрдбрд╝реЗрдВред
  • рдПрдХ рдЗрд╢рд╛рд░рд╛ рдЫреЛрдбрд╝реЛред
  • рд╕рдореВрд╣ рдирд┐рдпрдВрддреНрд░рдгред
  • рдЧрд▓рдд рд╢рд┐рд▓рд╛рд▓реЗрдЦреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░реЗрдВред
  • рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ: рдмрдЯрди, рд╢рд┐рд▓рд╛рд▓реЗрдЦ, рд▓рд┐рдВрдХ, рдЖрджрд┐ред

Interface builder рдореЗрдВ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗрд╡рд▓ рдХреЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред


рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд┐рд▓реНрдбрд░ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╡реЙрдпрд╕ рдУрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕


рдмрдЯрди рдХреЗ рдирд╛рдо -


рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЛ рдПрдХ рдЫреЛрдЯрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ VoiceOver рдмреАрдорд╛ VoiceOver - рдпрд╣ рдмрдЯрди рдкрд░ рдкрд╛рда рдпрд╛ рдЖрдЗрдХрди рдХрд╛ рдирд╛рдо рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред


рдЖрдкрдХреЛ рдХреНрдпрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


  • рдПрдХ рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рдмрдЯрди, рд▓реЗрдХрд┐рди рдкрд╛рда рдХреЗ рдмрд┐рдирд╛;
  • UISlider ;
  • UIStepper ;
  • рдЪрд┐рддреНрд░ред рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдорд╛рди - .рдЕрдзрд┐рдХрддрд╛


рдирд╛рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдПрдХ рдореВрд▓реНрдп рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд▓рд╛рдЗрдбрд░ рдореЗрдВ "рдЪрдордХ" рдирд╛рдо рд╣реЛрдЧрд╛, рдФрд░ рдореВрд▓реНрдп "50%" рд╣реЛрдЧрд╛ред "рдХрд╛рд░реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ" рдмрдЯрди рдХреЛ рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рддреНрд░рд╛ рдпрд╛ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдЦрд░реАрджрдирд╛ рдЪрд╛рд╣рд┐рдПред


рд╕реБрдЭрд╛рд╡ -


рдпрджрд┐ рдЖрдк рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд╕рдВрдХреЗрдд рдХреЛ .accessibilityHint рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрди рдпреБрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИрдВ: рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЛрди рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред


рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рджрдмрд╛рд╡ рдХреНрд╖реЗрддреНрд░ рдХрдо рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк рдХреБрдЫ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЗрдиреВ рдореЗрдВ, рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░, рдПрдХ рдирд╛рдо, рдПрдХ рд╡рд┐рд╡рд░рдг рдФрд░ рдПрдХ рдореВрд▓реНрдп рдмрдЯрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдЖрдк рдЫреЛрдЯреА рддрд╕реНрд╡реАрд░ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реЗрд▓ рд╣реЗрдбрд┐рдВрдЧ рдореЗрдВ рдирд╛рдо рдФрд░ рдореВрд▓реНрдп рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд░рдЪрдирд╛ред рд╕реЗрд▓ рдПрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдореЗрдиреВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред


рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдбреЗрдореЛ рдФрд░ рдЕрднреНрдпрд╛рд╕)


рдпрд╣ рдЬреНрдЮрд╛рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЖрдЗрдП рдкрд┐рдЬреНрдЬрд╛ рдХреЗ рдореЗрдиреВ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВред


рдЕрдВрдзреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡реЙрдпрд╕ рдУрд╡рд░ рддрддреНрд╡реЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдПрдХ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ


рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдореБрджреНрджреЗ:


  • рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ 24 рдХрд╛ рдПрдХ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛ рдореВрд▓реНрдпред
  • рдмрд╛рдИрдВ рдФрд░ рдКрдкрд░ рдХреА рддрд░рдл рдЦрд╛рд▓реА рдЬрдЧрд╣ред
  • рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрддреНрд╡ред
  • рдореВрд▓реНрдп рдХрд╛ рдЧрд▓рдд рдЙрдЪреНрдЪрд╛рд░рдг ("рджреЛ рд╕реМ рдФрд░ рдкреИрдВрддрд╛рд▓реАрд╕ рд░реВрдмрд▓ рд╕реЗ" рдХреЗ рдмрдЬрд╛рдп "рджреЛ рд╕реМ рдкреИрдВрддрд╛рд▓реАрд╕ рд░реВрдмрд▓ рд╕реЗ")ред

рдорд╛рди рдЬреЛрдбрд╝реЗрдВ


рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ 24 рдбреЛрдбреЛ рд░реВрдмрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рдЕрддрдГ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:


 accessibilityLabel = "-" accessibilityValue = amountOfDodoRubles 

рдпрд╣ рдХреЛрдб рдХрд╣реАрдВ рднреА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рд╣реИред


рд╢рд╣рд░ рдХреЗ рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд▓реЗрдмрд▓ рдЖрдкрдХрд╛ рд╢рд╣рд░ рд╣реИ, рдореВрд▓реНрдп рдорд╛рд╕реНрдХреЛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЕрддрд┐ рдирд╣реАрдВ рдХрд░рдирд╛ рднреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдп рд╣реИред


рд╣рдо рдКрдкрд░ рд╕реЗ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ


рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдЯреЙрдХ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ UICollectionView ред рд╕реЗрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд▓реЗрдмрд▓ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ VoiceOver рдвреВрдВрдврддрд╛ рд╣реИред


рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ:


  1. рдкреВрд░реЗ рд╕реЗрд▓ рдХреЛ рд╕реБрд▓рдн рдирд┐рдпрдВрддреНрд░рдг рдмрдирд╛рдПрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА view рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ; VoiceOver рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ view рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, isAccessibilityElement = true рд╕реЗрд▓ рдкрд░ isAccessibilityElement = true рд╕реЗрдЯ рдХрд░реЗрдВред рдпрд╣ awakeFromNib() рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреВрд░реЗ рд╕реЗрд▓ рдмрд╛рд╣рд░ рдЦрдбрд╝реЗ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдЕрдм рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  2. рд╕реЗрд▓ рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВред рдЖрдк рдЕрдм рд▓реЗрдмрд▓ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╛рда рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред accessibilityLabel = specialOffer.title

рдЖрдк рдЗрд╕реЗ cellForItemAt рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let specialOffer = specialOffers[indexPath.row] let cell = collectionView.dequeтАж cell.accessibilityLabel = specialOffer.title return cell } 

рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрд▓ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ


рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рд╕реЗрд▓ рдореЗрдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ: рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрддреНрд╡ рдФрд░ рдПрдХ рдЧрд▓рдд рдореВрд▓реНрдп рд╡рд┐рд╡рд░рдгред


рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓рд╛рдПрдВ

рдЕрдм рд╕реЗрд▓ рдХреЗ рдХрдИ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ: рдирд╛рдо, рд╡рд┐рд╡рд░рдг, рдореВрд▓реНрдп рдФрд░ рдЪрд┐рддреНрд░, рдкреНрд░рддрд┐ рд╕реЗрд▓ 4 рдирд┐рдпрдВрддреНрд░рдгред рдпрджрд┐ рдореЗрдиреВ рдореЗрдВ 10 рдЙрддреНрдкрд╛рдж рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 40 рдЫреЛрдЯреЗ рдирд┐рдпрдВрддреНрд░рдг рд╣реИрдВред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ 10 рдЙрддреНрдкрд╛рдж рдереЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрд░реНрде рдХреЗ рдХрд░реАрдм рдирд┐рдХрд▓рд╛ред


рдореЗрдиреВ рд╕реЗрд▓ рдЬрд╣рд╛рдВ рдЖрдЗрдЯрдо рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


рдЖрдк рд╕рд░рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


  1. рдкреВрд░реЗ рд╕реЗрд▓ рдХреЛ рд╕реБрд▓рдн рдирд┐рдпрдВрддреНрд░рдг рдмрдирд╛рдПрдВред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ: рд╕реЗрдЯ isAccessibilityElement = true рд╕реЗрд▓ рдХреЗ isAccessibilityElement = true
  2. accessibilityLabel рдореЗрдВ accessibilityLabel рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд▓рд┐рдЦрддрд╛ рд╣реИ: рдирд╛рдо рдФрд░ рдХреАрдорддред рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдХрд░, VoiceOver рдЦрд╛рддреЗ рдореЗрдВ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рд▓реЗрддрд╛ рд╣реИред
  3. accessibilityValue рдХреНрд╖рдорддрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд░рдЪрдирд╛ рд╣реИред
  4. рд╕рдВрдХреЗрдд рджреЗрдВ рдХрд┐ рд╕реЗрд▓ рдХреЛ рджрдмрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдмрдЯрди рд╣реИред accessibilityTraits = .button

рдПрдХ рдореЗрдиреВ рд╕реЗрд▓ рдЬреЛ рд╡реЙрдЗрд╕ рдУрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


рд╕реЗрд▓ рдХреЗ рдЕрдВрджрд░ рдХреА рд╡рд┐рдзрд┐ рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИ:


 func refreshAccessibility(title: String?, price: String?, ingredients: String?, isProductAvailable: Bool) { isAccessibilityElement = true // 1 let price = isProductAvailable ? price : "  " accessibilityLabel = [title, price].compactMap { $0 } .joined(separator: ", ") // 2 accessibilityValue = ingredients // 3 accessibilityTraits = .button // 4 } 

рдЖрдк рди рдХреЗрд╡рд▓ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЕрд░реНрде рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рддреНрд░рд╛ рдФрд░ рдореВрд▓реНрдп рд╕реНрд╡рд┐рдЪ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдорд╛рддреНрд░рд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ - рдПрдХ рдирдИ рдХреАрдордд рдХрд╣рд╛ред рдлрд┐рд░ рдЪрд╛рд░ рдмреЗрд╡рдХреВрдл рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


рдЪрд╛рд░ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдорд╛рдЗрдирд╕ рдмрдЯрди, рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рд▓реЗрдмрд▓, рдкреНрд▓рд╕ рдмрдЯрди рдФрд░ рд╕рднреА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп


рд╣рдо "рд░реВрдмрд▓" рдХреЛ рдЭреБрдХрд╛рддреЗ рд╣реИрдВ


"рд░реВрдмрд▓" рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╡рд░реНрддрдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд╣реА рд▓рд╛рдЗрди рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрдЯрди рдХреЗ рд▓рд┐рдП accessibilityLabel рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред


 buyButton.accessibilityLabel = String(format: NSLocalizedString(" %d ", comment: "Price button. Ex.:  150 "), price) 

рдЖрдкрдХреЛ Localizable.stringsDict рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


рд╕реНрдерд╛рдиреАрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг



рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рджреЛ рд╕рд╣рд╛рдпрдХ рдЗрд╢рд╛рд░реЗ рд╣реИрдВ: рд╕реНрдХреНрд░рдм рдФрд░ рдореИрдЬрд┐рдХ рдЯреИрдкред


рд╕реНрдХреНрд░рдм рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЛ рджреЛ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд╛рдЗрдк рдХрд░реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкрддреНрд░ рдЬреЗрдб рд▓рд┐рдЦрдирд╛ред рдЖрдк рд╕реНрдХреНрд░реИрдмрд▓ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдкрд┐рдВрдЧ рднреА рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдореЗрдбрдЬрд┐рдХ рдЯреИрдк рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░реАрди рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХрд╣рддрд╛ рд╣реИред рджреЛ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рдмрд╛рд░ рдЯреИрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЦрд┐рд▓рд╛рдбрд╝реА рдореЗрдВ рдПрдХ рдЧреАрдд рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХреЙрд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред


Medjik tapa рдореЗрдВ UX рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдЦреБрдж рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ: рдпрджрд┐ рд╕реНрдХреНрд░реИрдмрд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдЬрд┐рдХ рдЯреИрдк рдХреЛ рдЕрдЧрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рджреЗрдВред рдкрд┐рдЬреНрдЬрд╛ рдХрд╛рд░реНрдб рдкрд░, рдпрд╣ рдЗрд╕реЗ рдЯреЛрдХрд░реА рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдпрджрд┐ рдЖрдк рдЯреЛрдХрд░реА рдореЗрдВ рдереЗ, рддреЛ рдЖрдк рдбрд┐рд▓реАрд╡рд░реА рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рд╡рд┐рддрд░рдг рд╕реНрд╡рд┐рдЪ рд╕реЗ рднреБрдЧрддрд╛рди рддрдХред


рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдмрдЯрди рдХреЗ рдЯреВрд▓рдЯрд┐рдк рдореЗрдВ рдЬрд╛рджреВ рдЯреИрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ: рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдмреЛрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред


рдЕрдбреЙрдкреНрдЯ рдиреЗрд╡рд┐рдЧреЗрд╢рди


рдпрджрд┐ рдЖрдк рд╕реНрдЯреЙрдХ рдпрд╛ рдбреЛрдбреЛ-рд░реВрдмрд▓ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдореЛрдбрд▓ рд╕реНрдХреНрд░реАрди рдЦреБрд▓ рдЬрд╛рдПрдЧреАред рдЕрдЧрд░ рд╣рдо UINavigationController рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореЛрдбрд▓ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╡реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрд╢рд╛рд░реЛрдВ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддреЗ рд╣реИрдВред


рдкреЙрдкрдЕрдк рдЙрджрд╛рд╣рд░рдг


рд╕реНрдХреНрд░рдм рд▓рдЧрд╛рдПрдВ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ Z рдХреЛ рдбреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, firstResponder рдХреА firstResponder рд╡рд┐рдзрд┐ firstResponder ред рдЖрдорддреМрд░ рдкрд░, рдпрд╣ рд╡рд░реНрддрдорд╛рди UIViewController ред


рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рддрд░реАрдХрд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рд╕рд╣реА рд▓реМрдЯреЗрдВ, рдпрд╣ рджрд░реНрд╢рд╛рддреЗ рд╣реБрдП рдХрд┐ рдЗрд╢рд╛рд░реЗ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЧрдИ рд╣реИ рдФрд░ рдЖрдк responder chain рдЖрдЧреЗ responder chain рд╕рдХрддреЗ рд╣реИрдВ:


 override func accessibilityPerformEscape() -> Bool { dismiss(animated: true) return true } 

рдЗрд╕реА рддрд░рд╣ рд╕реЗ, рдЖрдк рдореИрдЬрд┐рдХ рдЯреИрдк рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдб рд╕реЗ рдкреНрд░рдореЛрд╢рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ:


 override func accessibilityPerformMagicTap() -> Bool { applySpecialOffer() return true } 

рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рд▓рдЧрд╛рдПрдВ


рдЕрдиреБрдХреВрд▓рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдмрд╕ VoiceOver рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рджрд░реНрдЬрдиреЛрдВ рдЖрдк рдкрд░ VoiceOver ред рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж рдирдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпрд╛рдж рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХрд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВред


  1. рдЙрдкрд╢реАрд░реНрд╖рдХ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред IOS 13 рдореЗрдВ, рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рджрд┐рдЦрд╛рдИ рджреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ "рдЙрдкрд╢реАрд░реНрд╖рдХ" рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд╕реЗрдЯрд┐рдВрдЧреНрд╕ тЖТ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА тЖТ рд╡реЙрдпрд╕рдУрд╡рд░ тЖТ рдХреИрдкреНрд╢рди рдкреИрдирд▓ред
  2. рд╡реЙрдпрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрдкреНрд╢рди рджреЗрдЦреЗрдВред VoiceOver рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдк Voice Control рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╕рднреА рд▓реЗрдмрд▓ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдЕрдЧрд░ рдХрд╣реАрдВ рдХреЛрдИ рдЕрдВрдХ рд╣реИ, рддреЛ рдЖрдк рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рднреВрд▓ рдЧрдПред
  3. рдЕрднрд┐рдЧрдореНрдпрддрд╛ рдирд┐рд░реАрдХреНрд╖рдХред рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдЖрдкрдХреЛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд╕рднреА accessibility рдЧреБрдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░реАрди рдХреЛ рднреА рдСрдбрд┐рдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ: рдЕрд╡рд╕рд╛рдж рдХреЗ рдЫреЛрдЯреЗ рдХреНрд╖реЗрддреНрд░, рдЧреИрд░-рд╡рд┐рдкрд░реАрдд рддрддреНрд╡, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрдЯрдиред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╡рд╣ рдЕрдкрдиреА рдЖрд╡рд╛рдЬ рдХреЗ рд╕рд╛рде рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реА


рд╣рдордиреЗ рдПрдХ рд╕реНрдХреНрд░реАрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред рдЖрдкрдХреЛ рдмрд╣реБрдд рдХрдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрддрд░ рдкрд░ рдкрд╣реБрдВрдЪ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред


рд▓реЗрдХрд┐рди рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рдмрд╣реБрдд рдХреБрдЫ рд░рд╣рддрд╛ рд╣реИ: рд╡рд┐рднрд┐рдиреНрди accessibilityTraits - accessibilityTraits , рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗрд╡рд┐рдЧреЗрд╢рди, custom actions , рдлрд╝реЛрдХрд╕ рдСрд░реНрдбрд░, accessibility notifications , рд░реЛрдЯрд░ рдФрд░ рдмреНрд░реЗрд▓ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реА рдмрд╛рд░ред


рдпрджрд┐ рдЖрдк рдЕрднреА рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:



рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдореЛрдмрд╛рдЗрд▓ рдЪреИрдирд▓ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ ред

Source: https://habr.com/ru/post/hi481200/


All Articles