{"id":28699,"date":"2026-09-02T19:13:49","date_gmt":"2026-09-02T19:13:49","guid":{"rendered":"https:\/\/umang.pk\/2026\/09\/02\/%d8%ac%db%8c%d9%b9-%d9%be%db%8c%da%a9-%da%a9%d9%85%d9%be%d9%88%d8%b2-%da%a9%db%92-%d8%b3%d8%a7%d8%aa%da%be-%d9%82%d8%a7%d8%a8%d9%84-%d8%b1%d8%b3%d8%a7%d8%a6%db%8c-%d8%a7%db%8c%d9%86%da%88%d8%b1%d8%a7\/"},"modified":"2026-09-02T19:13:51","modified_gmt":"2026-09-02T19:13:51","slug":"%d8%ac%db%8c%d9%b9-%d9%be%db%8c%da%a9-%da%a9%d9%85%d9%be%d9%88%d8%b2-%da%a9%db%92-%d8%b3%d8%a7%d8%aa%da%be-%d9%82%d8%a7%d8%a8%d9%84-%d8%b1%d8%b3%d8%a7%d8%a6%db%8c-%d8%a7%db%8c%d9%86%da%88%d8%b1%d8%a7","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/09\/02\/%d8%ac%db%8c%d9%b9-%d9%be%db%8c%da%a9-%da%a9%d9%85%d9%be%d9%88%d8%b2-%da%a9%db%92-%d8%b3%d8%a7%d8%aa%da%be-%d9%82%d8%a7%d8%a8%d9%84-%d8%b1%d8%b3%d8%a7%d8%a6%db%8c-%d8%a7%db%8c%d9%86%da%88%d8%b1%d8%a7\/","title":{"rendered":"\u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u06cc\u067e\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba: \u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u06af\u0627\u0626\u06cc\u0688"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0622\u067e \u06a9\u06cc \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u06cc\u067e \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0628\u0646\u0627\u0646\u0627 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u06a9\u0648\u0626\u06cc\u060c \u0628\u0634\u0645\u0648\u0644 \u0628\u0635\u0631\u06cc\u060c \u0633\u0645\u0627\u0639\u062a\u060c \u0645\u0648\u0679\u0631\u060c \u200b\u200b\u06cc\u0627 \u0639\u0644\u0645\u06cc \u0645\u0639\u0630\u0648\u0631\u06cc \u0648\u0627\u0644\u06d2 \u0627\u0641\u0631\u0627\u062f\u060c \u0627\u06cc\u067e \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u062a \u0686\u06cc\u062a \u0627\u0648\u0631 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0627\u0631\u06cc\u062e\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u0631\u0633\u0627\u0626\u06cc \u06a9\u0648 \u0627\u06a9\u062b\u0631 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0633\u0648\u0686\u0627 \u062c\u0627\u062a\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u063a\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632 \u06c1\u06d2 \u0627\u06af\u0631 \u0644\u0627\u0646\u0686 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0648\u0642\u062a \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062c\u060c \u06cc\u06c1 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u062f\u0644 \u06af\u06cc\u0627 \u06c1\u06d2. \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u06cc\u0648\u0631\u067e\u06cc \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0627\u06cc\u06a9\u0679 (EAA) \u062c\u06cc\u0633\u06d2 \u0636\u0648\u0627\u0628\u0637 \u067e\u0648\u0631\u06d2 \u06cc\u0648\u0631\u067e\u06cc \u06cc\u0648\u0646\u06cc\u0646 \u06a9\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0645\u06cc\u06ba \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0628\u0646\u0627\u0646\u0627 \u0627\u06cc\u06a9 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0642\u0627\u0646\u0648\u0646\u06cc \u0627\u0648\u0631 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0636\u0631\u0648\u0631\u062a \u0628\u0646 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0632\u06cc\u062f \u0627\u06c1\u0645 \u0628\u0627\u062a \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0635\u0631\u0641 \u0627\u0686\u06be\u06cc \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0627\u06cc\u067e\u0633 \u062a\u0645\u0627\u0645 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0627\u067e\u0646\u06d2 \u0633\u0627\u0645\u0639\u06cc\u0646 \u06a9\u06d2 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u062d\u0635\u06d2 \u06a9\u0648 \u062e\u0627\u0631\u062c \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>Jetpack Compose \u0645\u0648\u062c\u0648\u062f\u06c1 Android View \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u062d\u0631\u06cc\u0631 \u0627\u0639\u0644\u0627\u0646\u06cc\u06c1 \u0627\u0648\u0631 \u0631\u06cc\u0627\u0633\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u06cc\u06c1 \u0628\u0635\u0631\u06cc \u0635\u0627\u0631\u0641 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u062c\u0627\u0645\u0639 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba\u060c \u0622\u067e \u06cc\u06c1 \u0633\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u0645\u06cc\u06ba \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0636\u0631\u0648\u0631\u06cc \u0627\u0648\u0631 \u062c\u062f\u06cc\u062f \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0644\u0627\u06af\u0648 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0679\u06cc\u0633\u0679\u0646\u06af\u060c Google \u06a9\u06d2 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0627\u0633\u06a9\u06cc\u0646\u0631\u060c \u0627\u0648\u0631 Android \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u06a9\u06d2 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u0627\u0648\u0631 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e \u06a9\u06cc \u0645\u06a9\u0645\u0644 \u062c\u0627\u0646\u0686 \u06a9\u06cc\u0633\u06d2 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u06af\u06cc:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0648\u0679\u0644\u0646 \u0627\u0648\u0631 \u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0644\u0645 (\u0645\u062b\u0644\u0627\u064b \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644\u0632\u060c \u0645\u0648\u0688\u06cc\u0641\u0627\u0626\u0631\u060c \u0627\u0633\u0679\u06cc\u0679)<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 (\u06c1\u06cc\u062c \u06c1\u0627\u06af\u060c \u0622\u0626\u06cc\u06af\u0648\u0627\u0646\u0627\u060c \u062c\u06cc\u0644\u06cc \u0641\u0634\u060c \u06a9\u0648\u0622\u0644\u0627\u060c \u0644\u06cc\u0688\u06cc \u0628\u06af \u0627\u0648\u0631 \u0628\u0639\u062f \u0645\u06cc\u06ba)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u06a9 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0688\u06cc\u0648\u0627\u0626\u0633 \u06cc\u0627 \u0627\u06cc\u0645\u0648\u0644\u06cc\u0679\u0631 \u062c\u0633 \u0645\u06cc\u06ba \u06af\u0648\u06af\u0644 \u067e\u0644\u06d2 \u0627\u0633\u0679\u0648\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06c1\u0648 \u0627\u0648\u0631 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 9.0 (API 28) \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0627\u0648\u067e\u0631 \u0648\u0627\u0644\u0627 (Google Accessibility Scanner \u06a9\u0627 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0648\u0631\u0698\u0646 \u0627\u0646\u0633\u0679\u0627\u0644 \u0627\u0648\u0631 \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2)\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-why-accessibility-matters-in-modern-android-development\">\u062c\u062f\u06cc\u062f \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0688\u06cc\u0648\u0644\u067e\u0645\u0646\u0679 \u0645\u06cc\u06ba \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc\u0648\u06ba \u0627\u06c1\u0645 \u06c1\u06d2\u06d4<\/h2>\n<p>\u0648\u0631\u0644\u0688 \u06c1\u06cc\u0644\u062a\u06be \u0622\u0631\u06af\u0646\u0627\u0626\u0632\u06cc\u0634\u0646 (\u0688\u0628\u0644\u06cc\u0648 \u0627\u06cc\u0686 \u0627\u0648) \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642\u060c 1.3 \u0628\u0644\u06cc\u0646 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0644\u0648\u06af (\u062f\u0646\u06cc\u0627 \u06a9\u06cc \u0622\u0628\u0627\u062f\u06cc \u06a9\u0627 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 16 \u0641\u06cc\u0635\u062f) \u0634\u062f\u06cc\u062f \u0645\u0639\u0630\u0648\u0631\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0632\u0646\u062f\u06af\u06cc \u06af\u0632\u0627\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u0645\u0633\u062a\u0642\u0644 \u0628\u0635\u0627\u0631\u062a \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc\u060c \u0633\u0645\u0627\u0639\u062a \u0633\u06d2 \u0645\u062d\u0631\u0648\u0645\u06cc\u060c \u062c\u0633\u0645\u0627\u0646\u06cc \u062d\u0631\u06a9\u0627\u062a \u06a9\u06cc \u067e\u0627\u0628\u0646\u062f\u06cc\u0627\u06ba\u060c \u0639\u0644\u0645\u06cc \u06cc\u0627 \u0627\u0639\u0635\u0627\u0628\u06cc \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u0648\u0627\u0644\u06d2 \u0644\u0648\u06af \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0633\u062a\u0642\u0644 \u0645\u0639\u0630\u0648\u0631\u06cc \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1\u060c \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0639\u0627\u0631\u0636\u06cc \u06cc\u0627 \u062d\u0627\u0644\u0627\u062a \u06a9\u06cc \u062d\u062f\u0648\u062f \u06a9\u0627 \u0633\u0627\u0645\u0646\u0627 \u06a9\u0631\u0646\u0627 \u067e\u0691 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0648 \u0644\u0648\u06af \u0627\u067e\u0646\u06d2 \u0628\u0686\u0648\u06ba \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u0627\u062a\u06be \u0633\u06d2 \u067e\u06a9\u0691\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0646 \u0645\u06cc\u06ba \u0645\u0648\u0679\u0631 \u06a9\u06cc \u0639\u0627\u0631\u0636\u06cc \u062e\u0631\u0627\u0628\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u062c\u0648 \u0644\u0648\u06af \u062f\u0648\u067e\u06c1\u0631 \u06a9\u06cc \u0633\u062e\u062a \u0633\u0648\u0631\u062c \u06a9\u06cc \u0631\u0648\u0634\u0646\u06cc \u0645\u06cc\u06ba \u0633\u06cc\u0644 \u0641\u0648\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0648\u06c1 \u062d\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0628\u0635\u0631\u06cc \u062e\u0631\u0627\u0628\u06cc \u06a9\u0627 \u062a\u062c\u0631\u0628\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0648\u0631 \u0634\u0648\u0631 \u0645\u0686\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06c1\u0648\u0627\u0626\u06cc \u0627\u0688\u06d2 \u06a9\u06d2 \u0679\u0631\u0645\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u06a9\u0633\u06cc \u06a9\u0648 \u062d\u0627\u0644\u0627\u062a \u06a9\u06cc \u0633\u0645\u0627\u0639\u062a \u06a9\u06cc \u062d\u062f\u0648\u062f \u06a9\u0627 \u0633\u0627\u0645\u0646\u0627 \u06a9\u0631\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0631\u0646\u0627 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0627\u0646 \u062a\u0645\u0627\u0645 \u0645\u0646\u0638\u0631\u0646\u0627\u0645\u0648\u06ba \u0648\u063a\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u0644\u0686\u06a9\u062f\u0627\u0631 \u0627\u0648\u0631 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0631\u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0645\u062f\u0631\u062f\u06cc \u0627\u0648\u0631 \u062c\u0627\u0645\u0639 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1\u060c \u0631\u0633\u0627\u0626\u06cc \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0628\u06cc\u0646 \u0627\u0644\u0627\u0642\u0648\u0627\u0645\u06cc \u0642\u0627\u0646\u0648\u0646 \u06a9\u06d2 \u062a\u0627\u0628\u0639 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u0648\u0631\u067e\u06cc \u06cc\u0648\u0646\u06cc\u0646 \u0645\u06cc\u06ba <strong>\u06cc\u0648\u0631\u067e\u06cc \u0631\u0633\u0627\u0626\u06cc \u0627\u06cc\u06a9\u0679 (EAA)<\/strong> \u0627\u0633\u06d2 \u0645\u0635\u0646\u0648\u0639\u0627\u062a \u0627\u0648\u0631 \u062e\u062f\u0645\u0627\u062a \u06a9\u06cc \u0627\u06cc\u06a9 \u0645\u062a\u0639\u06cc\u0646 \u0641\u06c1\u0631\u0633\u062a \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0627\u0633\u0645\u0627\u0631\u0679 \u0641\u0648\u0646\u0632 \u0627\u0648\u0631 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631\u0632\u060c \u0627\u06cc \u06a9\u0627\u0645\u0631\u0633\u060c \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06cc \u0645\u0627\u0644\u06cc\u0627\u062a\u06cc \u062e\u062f\u0645\u0627\u062a\u060c \u0627\u06cc \u06a9\u062a\u0627\u0628\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u0633\u0627\u0641\u0631\u0648\u06ba \u06a9\u06cc \u0646\u0642\u0644 \u0648 \u062d\u0645\u0644 \u06a9\u06cc \u062e\u062f\u0645\u0627\u062a\u06d4 \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u062a\u0639\u0645\u06cc\u0644 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0638\u0627\u06c1\u0631 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2: <strong>EN 301 549<\/strong>\u0688\u06cc\u062c\u06cc\u0679\u0644 \u0645\u0635\u0646\u0648\u0639\u0627\u062a \u0627\u0648\u0631 \u062e\u062f\u0645\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u06cc\u0648\u0631\u067e\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u0627 \u0645\u0639\u06cc\u0627\u0631\u06d4<\/p>\n<p>\u0627\u0645\u0631\u06cc\u06a9\u06c1 \u0645\u06cc\u06ba <strong>\u0627\u0645\u0631\u06cc\u06a9\u06cc \u0645\u0639\u0630\u0648\u0631\u06cc \u0627\u06cc\u06a9\u0679 (ADA)<\/strong> \u06cc\u06c1 \u0631\u06cc\u0627\u0633\u062a\u06cc \u0627\u0648\u0631 \u0645\u0642\u0627\u0645\u06cc \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 (\u0639\u0646\u0648\u0627\u0646 II\u060c \u062c\u0633 \u0645\u06cc\u06ba \u0648\u0627\u0636\u062d \u0648\u06cc\u0628 \u0627\u0648\u0631 \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u06cc\u067e \u06a9\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 WCAG 2.1 \u0644\u06cc\u0648\u0644 AA \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0644 2024 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2) \u0627\u0648\u0631 \u0639\u0648\u0627\u0645\u06cc \u0631\u06c1\u0627\u0626\u0634 (\u0679\u0627\u0626\u0679\u0644 III) \u067e\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0644\u06af \u0627\u0644\u06af\u060c <strong>\u0622\u0631\u0679\u06cc\u06a9\u0644 508<\/strong> \u0628\u062d\u0627\u0644\u06cc \u0627\u06cc\u06a9\u0679 \u0648\u0641\u0627\u0642\u06cc \u0627\u06cc\u062c\u0646\u0633\u06cc\u0648\u06ba \u06a9\u0648 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0648\u0631 \u0645\u0648\u0627\u0635\u0644\u0627\u062a\u06cc \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u062a\u0642\u0627\u0636\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0646 \u0645\u0639\u06cc\u0627\u0631\u0627\u062a \u06a9\u0648 \u067e\u0648\u0631\u0627 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06d2 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u0642\u0627\u0646\u0648\u0646\u06cc \u062c\u0631\u0645\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0622\u067e \u06a9\u06d2 \u0628\u0631\u0627\u0646\u0688 \u0627\u0645\u06cc\u062c \u06a9\u0648 \u0646\u0642\u0635\u0627\u0646 \u067e\u06c1\u0646\u0686 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0631\u0639\u06a9\u0633\u060c \u0631\u0633\u0627\u0626\u06cc \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u0646\u0627 \u0622\u067e \u06a9\u06cc \u0645\u062c\u0645\u0648\u0639\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u0648 \u0648\u0633\u0639\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u06a9\u0648 \u0628\u0691\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0639\u06cc\u0627\u0631 \u0628\u06be\u06cc \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0648 \u0645\u062a\u0627\u062b\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06af\u0648\u06af\u0644 \u06a9\u06cc \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0648\u0627\u0626\u0679\u0644\u0632 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u0645\u06cc\u06ba \u06a9\u06c1\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u062e\u06cc\u0627\u0644 \u0645\u06cc\u06ba \u06a9\u0631\u06cc\u0634 \u06a9\u06cc \u0627\u0639\u0644\u06cc \u0634\u0631\u062d \u06af\u0648\u06af\u0644 \u067e\u0644\u06d2 \u067e\u0631 \u0627\u06cc\u067e \u06a9\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-core-concepts-of-android-accessibility\">\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u062a\u0635\u0648\u0631\u0627\u062a<\/h2>\n<p>Jetpack Compose \u0645\u06cc\u06ba \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u06a9\u06c1 \u0645\u0642\u0627\u0645\u06cc Android \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u06a9\u0633 \u0637\u0631\u062d \u0645\u0639\u0627\u0648\u0646 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u062a \u0686\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-understanding-android-accessibility-services\">Android \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0633\u0631\u0648\u0633\u0632 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627<\/h3>\n<p>Android \u0645\u06cc\u06ba \u06a9\u0626\u06cc \u0628\u0644\u0679 \u0627\u0646 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0633\u0631\u0648\u0633\u0632 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u0648 \u0628\u06cc\u06a9 \u06af\u0631\u0627\u0624\u0646\u0688 \u067e\u0631\u0648\u0633\u06cc\u0633 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0633\u0631\u0648\u0633\u0632 \u0627\u06cc\u067e \u06a9\u06d2 \u06cc\u0648\u0632\u0631 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u06c1\u0627\u0626\u06cc \u062c\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0645\u062a\u0628\u0627\u062f\u0644 \u062d\u0633\u06cc \u0641\u06cc\u0688 \u0628\u06cc\u06a9 \u06cc\u0627 \u0645\u062a\u0628\u0627\u062f\u0644 \u0627\u0646 \u067e\u0679 \u0645\u06cc\u06a9\u0627\u0646\u0632\u0645 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p><strong>\u0679\u0627\u06a9 \u0628\u06cc\u06a9 (\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631):<\/strong> TalkBack \u0627\u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u06c1\u06d2 \u062c\u0633\u06d2 Android \u0645\u06cc\u06ba \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u062c\u0648 \u0646\u0627\u0628\u06cc\u0646\u0627 \u0627\u0648\u0631 \u06a9\u0645 \u0628\u0635\u0627\u0631\u062a \u0648\u0627\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u060c \u0628\u0635\u0631\u06cc \u0645\u0648\u0627\u062f \u0627\u0648\u0631 \u0645\u0639\u0646\u0648\u06cc \u0648\u0636\u0627\u062d\u062a\u0648\u06ba \u06a9\u0648 \u062a\u0631\u06a9\u06cc\u0628 \u0634\u062f\u06c1 \u0627\u0633\u067e\u06cc\u0686 \u0627\u0648\u0631 \u06c1\u06cc\u067e\u0679\u06a9 \u0648\u0627\u0626\u0628\u0631\u06cc\u0634\u0646\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0644\u06a9\u06cc\u0631\u06cc \u0633\u0648\u0627\u0626\u067e \u0627\u0634\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u063a\u06cc\u0631 \u0628\u0635\u0631\u06cc \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u0648\u0626\u0686 \u0631\u0633\u0627\u0626\u06cc:<\/strong> \u0645\u0648\u0679\u0631 \u06a9\u06cc \u0634\u062f\u06cc\u062f \u0645\u0639\u0630\u0648\u0631\u06cc \u0648\u0627\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u062c\u0648 \u0641\u0632\u06cc\u06a9\u0644 \u0679\u0686 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0633\u0648\u0626\u0686 \u0631\u0633\u0627\u0626\u06cc \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u06cc\u06a9 \u06cc\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0641\u0632\u06cc\u06a9\u0644 \u0633\u0648\u0626\u0686\u0632 (\u0645\u062b\u0644\u0627\u064b\u060c \u0641\u0679 \u200b\u200b\u067e\u06cc\u0688\u0644\u060c \u0633\u06cc\u067e \u0688\u06cc\u0648\u0627\u0626\u0633\u060c \u06cc\u0627 \u0633\u0646\u06af\u0644 \u0628\u0679\u0646) \u06cc\u0627 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u06cc \u0628\u0648\u0631\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0688\u06cc\u0648\u0627\u0626\u0633 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u0648\u0627\u0631 \u062a\u0648\u062c\u06c1 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0646\u0645\u0627\u06cc\u0627\u06ba \u06a9\u0631\u062f\u06c1 \u0622\u0626\u0679\u0645 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0622\u0648\u0627\u0632 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc:<\/strong> \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0635\u0648\u062a\u06cc \u06a9\u0645\u0627\u0646\u0688\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u0648\u0631\u06d2 \u0641\u0648\u0646 \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 (\u062c\u06cc\u0633\u06d2 &quot;\u067e\u0631\u06cc\u0633 \u0627\u0648\u067e\u0646&#8221;\u060c &quot;\u0627\u0633\u06a9\u0631\u0648\u0644 \u0688\u0627\u0624\u0646&#8221; \u06cc\u0627 &quot;\u06c1\u06cc\u0644\u0648 \u0679\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba&#8221;)\u06d4 \u0627\u0646 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0644\u06cc\u0628\u0644\u0632 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0645\u062a\u0639\u0627\u0645\u0644 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0639\u062f\u062f\u06cc \u0628\u06cc\u062c\u0632 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u0631\u06cc\u06ba\u060c \u062a\u0627\u06a9\u06c1 \u0635\u0627\u0631\u0641 \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0627\u06ba \u0627\u0646\u062c\u0627\u0645 \u062f\u06d2 \u0633\u06a9\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u0648\u0644\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba:<\/strong> \u0635\u0627\u0631\u0641\u06cc\u0646 \u0645\u06a9\u0645\u0644 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0622\u0646 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0645\u062e\u0635\u0648\u0635 \u067e\u06cc\u0631\u0627\u06af\u0631\u0627\u0641\u060c \u0628\u0679\u0646 \u06cc\u0627 \u0622\u0626\u06cc\u06a9\u0646\u0632 \u06a9\u0648 \u0628\u0648\u0644\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u0646\u0645\u0627\u06cc\u0627\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0633\u0628\u06be\u06cc \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u062e\u062f\u0645\u0627\u062a \u0627\u06cc\u06a9 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u0636\u0631\u0648\u0631\u062a \u06a9\u0627 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba: \u06cc\u0639\u0646\u06cc\u060c \u06cc\u06c1 \u0628\u0635\u0631\u06cc \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062a\u0639\u0627\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0648\u06c1 \u06a9\u0686\u06be \u0627\u0633 \u0637\u0631\u062d \u067e\u0691\u06be\u062a\u06d2 \u06c1\u06cc\u06ba: <strong>\u0645\u0639\u0646\u0648\u06cc \u062f\u0631\u062e\u062a<\/strong> \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0633\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1\u06d4<\/p>\n<h3 id=\"heading-how-the-compose-semantics-tree-works\">\u06a9\u0645\u067e\u0648\u0632 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u062c\u0628 \u0622\u067e \u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u0645\u06cc\u06ba \u0635\u0627\u0631\u0641 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u06a9\u0645\u067e\u0648\u0632 \u062f\u0648 \u0627\u0644\u06af \u0644\u06cc\u06a9\u0646 \u062c\u0691\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u062f\u0631\u062e\u062a\u0648\u06ba \u06a9\u06d2 \u0688\u06be\u0627\u0646\u0686\u06d2 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ol>\n<li>\n<p><strong>\u0644\u06d2 \u0622\u0624\u0679 (UI) \u062f\u0631\u062e\u062a:<\/strong> \u0627\u0633 \u062f\u0631\u062e\u062a \u0645\u06cc\u06ba \u0628\u0635\u0631\u06cc \u0631\u06cc\u0646\u0688\u0631\u0646\u06af \u0646\u0648\u0688\u0633 (\u062c\u06cc\u0633\u06d2 \u06a9\u06cc\u0646\u0648\u0633\u060c \u0628\u0627\u06a9\u0633\u060c \u0642\u0637\u0627\u0631\u060c \u06a9\u0627\u0644\u0645\u060c \u0645\u062a\u0646\u060c \u0627\u0648\u0631 \u062a\u0635\u0648\u06cc\u0631) \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba \u062c\u0648 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634\u060c \u062c\u06af\u06c1 \u0627\u0648\u0631 \u0688\u0631\u0627\u0626\u0646\u06af \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0645\u0639\u0646\u0648\u06cc \u062f\u0631\u062e\u062a:<\/strong> \u06cc\u06c1 \u062f\u0631\u062e\u062a \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06d2 \u062f\u0631\u062e\u062a \u06a9\u06d2 \u0645\u062a\u0648\u0627\u0632\u06cc \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2 \u062c\u0648 \u06c1\u0631 \u0639\u0646\u0635\u0631 \u06a9\u06d2 \u0645\u0639\u0646\u06cc\u060c \u0645\u0642\u0635\u062f\u060c \u062d\u0627\u0644\u062a \u0627\u0648\u0631 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0641\u0639\u0627\u0644\u06cc\u062a \u06a9\u0648 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<table>\n<thead>\n<tr>\n<th>\u0641\u0631\u0634<\/th>\n<th>\u0628\u0635\u0631\u06cc \u0644\u06d2 \u0622\u0624\u0679 \u0679\u0631\u06cc (UI \u0627\u0648\u0631 \u067e\u06a9\u0633\u0644)<\/th>\n<th>\u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc (\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0627\u0648\u0631 \u0679\u0627\u06a9 \u0628\u06cc\u06a9)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u06a9\u0646\u0679\u06cc\u0646\u0631<\/strong><\/td>\n<td><code>Row(modifier = Modifier.clickable { ... })<\/code><\/td>\n<td><strong>\u0633\u0646\u06af\u0644 \u0636\u0645 \u0634\u062f\u06c1 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0646\u0648\u0688<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0686\u06c1 1<\/strong><\/td>\n<td><code>Image(Icons.Default.Star)<\/code><\/td>\n<td><em>\u0648\u0627\u0644\u062f\u06cc\u0646 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0645\u06cc\u06ba \u0636\u0645 \u06c1\u0648 \u06af\u06cc\u0627\u06d4<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0686\u06d2 2<\/strong><\/td>\n<td><code>Text(\"4.5\")<\/code><\/td>\n<td><em>\u0648\u0627\u0644\u062f\u06cc\u0646 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0645\u06cc\u06ba \u0636\u0645 \u06c1\u0648 \u06af\u06cc\u0627\u06d4<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0686\u06d2 3<\/strong><\/td>\n<td><code>Text(\"Rating\")<\/code><\/td>\n<td><em>\u0648\u0627\u0644\u062f\u06cc\u0646 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0645\u06cc\u06ba \u0636\u0645 \u06c1\u0648 \u06af\u06cc\u0627\u06d4<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>\u0646\u062a\u06cc\u062c\u06c1<\/strong><\/td>\n<td>\u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u0627\u0644\u06af \u0627\u0644\u06af \u0628\u0635\u0631\u06cc \u067e\u06a9\u0633\u0644\u0632 \u067e\u06cc\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<td><strong>TalkBack \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/strong> <em>&quot;\u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc: 4.5 \u0633\u062a\u0627\u0631\u06d2\u060c \u0628\u0679\u0646&#8221;<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0645\u0639\u06cc\u0627\u0631\u06cc \u0645\u0648\u0627\u062f \u06a9\u0645\u067e\u0648\u0632 \u0627\u062c\u0632\u0627\u0621\u060c \u062c\u06cc\u0633\u06d2 <code>Button<\/code>, <code>Checkbox<\/code>, <code>Slider<\/code>, <code>Switch<\/code>\u0627\u0648\u0631 <code>Text<\/code>) \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0633\u06cc\u0645\u0646\u0679\u06a9 \u062f\u0631\u062e\u062a \u06a9\u0648 \u0645\u0646\u0627\u0633\u0628 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u0628\u0627\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>Button<\/code> \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u0633 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u0648 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>Role.Button<\/code> \u0627\u06cc\u06a9 \u06a9\u0644\u06a9 \u0627\u06cc\u06a9\u0634\u0646 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u0627\u06af\u0631 \u0622\u067e \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0644\u06d2 \u0622\u0624\u0679\u060c \u06a9\u06cc\u0646\u0648\u0633 \u06a9\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631\u060c \u06cc\u0627 \u063a\u06cc\u0631 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0648\u06cc\u062c\u06cc\u0679\u0633 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u062a\u062d\u0631\u06cc\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0622\u067e \u06a9\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06d2 \u0627\u0631\u0627\u062f\u06d2 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0646\u06c1\u06cc\u06ba \u0644\u06af\u0627 \u0633\u06a9\u062a\u0627\u06d4 \u0627\u0646 \u0635\u0648\u0631\u062a\u0648\u06ba \u0645\u06cc\u06ba\u060c \u0622\u067e \u06a9\u0648 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u06d2 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0645\u0648\u0688\u06cc\u0641\u0627\u0626\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u0691\u06be\u0627\u0646\u0627 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-the-wcag-21-pour-principles\">WCAG 2.1 POUR \u0627\u0635\u0648\u0644<\/h3>\n<p>\u0688\u06cc\u062c\u06cc\u0679\u0644 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06cc\u0646 \u0627\u0644\u0627\u0642\u0648\u0627\u0645\u06cc \u0645\u0639\u06cc\u0627\u0631\u0627\u062a <strong>\u0648\u06cc\u0628 \u0645\u0648\u0627\u062f \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0631\u06c1\u0646\u0645\u0627 \u062e\u0637\u0648\u0637 (WCAG) 2.1<\/strong>\u0648\u0631\u0644\u0688 \u0648\u0627\u0626\u0688 \u0648\u06cc\u0628 \u06a9\u0646\u0633\u0648\u0631\u0634\u06cc\u0645 (W3C) \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u0634\u0627\u0626\u0639 \u06a9\u0631\u062f\u06c1\u06d4 \u06c1\u062f\u0627\u06cc\u0627\u062a \u0686\u0627\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc \u06af\u0626\u06cc \u06c1\u06cc\u06ba\u060c \u062c\u0646\u06c1\u06cc\u06ba \u0627\u0646 \u06a9\u06d2 \u0645\u062e\u0641\u0641\u0627\u062a \u0633\u06d2 \u062c\u0627\u0646\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <strong>\u0688\u0627\u0644\u0648<\/strong>:<\/p>\n<ul>\n<li>\n<p><strong>\u0642\u0627\u0628\u0644 \u0634\u0646\u0627\u062e\u062a:<\/strong> \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0648\u0631 UI \u0627\u062c\u0632\u0627\u0621 \u06a9\u0648 \u0627\u0633 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u062c\u0633 \u0633\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0633\u0645\u062c\u06be \u0633\u06a9\u06cc\u06ba\u06d4 \u0645\u0648\u0627\u062f \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u062d\u0648\u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0648\u0634\u06cc\u062f\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u0648 \u0633\u06a9\u062a\u0627\u06d4 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u06cc\u067e\u0633 \u0645\u06cc\u06ba\u060c \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u062a\u0645\u0627\u0645 \u0628\u0635\u0631\u06cc \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0636\u0627\u062d\u062a\u06cc \u0645\u062a\u0646 \u06a9\u06d2 \u0645\u062a\u0628\u0627\u062f\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u0627\u060c \u0688\u0627\u0626\u0646\u0627\u0645\u06a9 \u0641\u0648\u0646\u0679 \u0627\u0633\u06a9\u06cc\u0644\u0646\u06af \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0627\u0639\u0644\u06cc \u0631\u0646\u06af \u06a9\u06d2 \u062a\u0636\u0627\u062f \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0642\u0627\u0628\u0644 \u0639\u0645\u0644:<\/strong> \u06cc\u0648\u0632\u0631 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0627\u062c\u0632\u0627\u0621 \u0627\u0648\u0631 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0642\u0627\u0628\u0644 \u0639\u0645\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u062a\u0645\u0627\u0645 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u0686\u0627\u06c1\u06d2 \u0648\u06c1 \u0679\u0686 \u0627\u0633\u06a9\u0631\u06cc\u0646\u060c \u06c1\u0627\u0631\u0688\u0648\u06cc\u0626\u0631 \u06a9\u06cc \u0628\u0648\u0631\u0688\u060c \u0648\u0627\u0626\u0633 \u06a9\u0645\u0627\u0646\u0688\u060c \u06cc\u0627 \u0633\u0648\u0626\u0686 \u0688\u06cc\u0648\u0627\u0626\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0646\u0627\u0633\u0628 \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 (Android \u06a9\u06d2 \u0631\u06c1\u0646\u0645\u0627 \u062e\u0637\u0648\u0637 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 48dp \u00d7 48dp \u06c1\u06cc\u06ba) \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0645\u0646\u0637\u0642\u06cc \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0622\u0631\u0688\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0642\u0627\u0628\u0644 \u0641\u06c1\u0645:<\/strong> \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0648\u0631 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0622\u067e\u0631\u06cc\u0634\u0646 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u0648\u0627\u0636\u062d \u0644\u06cc\u0628\u0644 \u0644\u06a9\u06be\u0646\u0627\u060c \u0628\u0627\u0645\u0639\u0646\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06d2 \u062e\u0631\u0627\u0628\u06cc \u06a9\u06d2 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u0627\u060c \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0627\u0686\u0627\u0646\u06a9 \u0627\u0648\u0631 \u063a\u06cc\u0631 \u0645\u062a\u0648\u0642\u0639 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u0633\u06d2 \u06af\u0631\u06cc\u0632 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0627\u067e\u0646\u06cc \u0634\u06a9\u0644\u0648\u06ba \u06a9\u0648 \u067e\u06cc\u0634\u06cc\u0646 \u06af\u0648\u0626\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0645\u0636\u0628\u0648\u0637:<\/strong> \u0645\u0648\u0627\u062f \u06a9\u0648 \u0627\u062a\u0646\u0627 \u0645\u0636\u0628\u0648\u0637 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u0645\u062a\u0639\u062f\u062f \u0635\u0627\u0631\u0641 \u0627\u06cc\u062c\u0646\u0679\u0648\u06ba \u0627\u0648\u0631 \u0645\u0639\u0627\u0648\u0646 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062a\u0634\u0631\u06cc\u062d \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u06d2\u06d4 \u06a9\u0645\u067e\u0648\u0632 \u0645\u06cc\u06ba\u060c \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06c1\u06cc\u06a9\u06cc \u0648\u0631\u06a9 \u0622\u0631\u0627\u0624\u0646\u0688\u0632 \u0633\u06d2 \u06af\u0631\u06cc\u0632 \u06a9\u0631\u0646\u0627\u060c \u0645\u0639\u06cc\u0627\u0631\u06cc \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0631\u0648\u0644\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0633\u0633\u0679\u0645 \u0644\u06cc\u0648\u0644 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u062a\u0631\u062c\u06cc\u062d\u0627\u062a \u06a9\u0627 \u0627\u062d\u062a\u0631\u0627\u0645 \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-semantics-in-jetpack-compose\">\u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u06d2 \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633<\/h2>\n<p>\u0627\u0633 \u0633\u06cc\u06a9\u0634\u0646 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u0633 \u0637\u0631\u062d \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u0627\u0648\u0631 \u06c1\u06cc\u0631\u0627 \u067e\u06be\u06cc\u0631\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-what-are-semantics\">\u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h3>\n<p>\u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u06cc \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u06a9\u0644\u06cc\u062f\u06cc \u0642\u062f\u0631 \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06c1\u06cc\u06ba \u062c\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u0646\u0648\u0688\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0646\u0633\u0644\u06a9 \u06c1\u06cc\u06ba: <code>Modifier.semantics<\/code> \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627\u06d4 \u06cc\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0639\u0646\u0635\u0631 \u06a9\u0627 \u0646\u0627\u0645 (<code>contentDescription<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u06cc\u06c1 \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u06d2 UI \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (<code>role = Role.Checkbox<\/code>, <code>Role.Button<\/code>, <code>Role.Tab<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u0635\u0648\u0631\u062a\u062d\u0627\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2 (<code>stateDescription = \"Checked\"<\/code>, <code>progressBarRangeInfo<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06cc\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba (<code>onClick<\/code>, <code>onLongClick<\/code>, <code>customActions<\/code>)<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-basic-semantic-properties-and-content-descriptions\">\u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0639\u0646\u0648\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0627\u0648\u0631 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644<\/h3>\n<p>\u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0645\u0639\u0646\u0648\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06c1\u06cc\u06ba: <code>contentDescription<\/code>. \u063a\u06cc\u0631 \u0645\u062a\u0646\u06cc UI \u0639\u0646\u0627\u0635\u0631 \u062c\u06cc\u0633\u06d2 \u0634\u0628\u06cc\u06c1\u06cc\u06ba\u060c \u062a\u0635\u0627\u0648\u06cc\u0631\u060c \u0627\u0648\u0631 \u0648\u06cc\u06a9\u0679\u0631 \u06af\u0631\u0627\u0641\u06a9\u0633 \u06a9\u06cc \u0645\u0642\u0627\u0645\u06cc \u0645\u062a\u0646\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u0635\u0631\u06cc \u062c\u0632\u0648 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2:<\/p>\n<pre><code class=\"language-kotlin\">\/\/ A functional icon button that performs an action\nIconButton(onClick = { \/* Open camera *\/ }) {\n    Icon(\n        painter = painterResource(id = R.drawable.ic_camera),\n        contentDescription = \"Open camera\"\n    )\n}\n\n\/\/ A decorative background illustration\nImage(\n    painter = painterResource(id = R.drawable.decorative_pattern),\n    contentDescription = null, \/\/ Informs TalkBack to skip this node completely\n    modifier = Modifier.fillMaxWidth()\n)\n<\/code><\/pre>\n<h4 id=\"heading-how-it-works-under-the-hood\">\u06cc\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h4>\n<p>\u0679\u0627\u06a9 \u0628\u06cc\u06a9 <code>Icon<\/code>\u06cc\u06c1 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2: <code>contentDescription<\/code> \u0627\u0633\u06d2 \u0627\u0648\u0646\u0686\u06cc \u0622\u0648\u0627\u0632 \u0645\u06cc\u06ba \u06a9\u06c1\u06cc\u06ba (\u062c\u06cc\u0633\u06d2 &quot;\u06a9\u06cc\u0645\u0631\u06c1 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u060c \u0628\u0679\u0646\u060c \u0686\u0627\u0644\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0628\u0627\u0631 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba&#8221;)\u06d4 TalkBack \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0644\u0641\u0638 &#8216;\u0628\u0679\u0646&#8217; \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>IconButton<\/code> \u0628\u06d2 \u0646\u0642\u0627\u0628 <code>Role.Button<\/code>. (\u0635\u062d\u06cc\u062d TalkBack \u06a9\u06d2 \u062c\u0645\u0644\u06d2 \u0648\u0631\u0698\u0646 \u0627\u0648\u0631 \u0639\u0644\u0627\u0642\u06d2 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u0635\u0648\u062a\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba \u0635\u0631\u0641 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06cc\u06ba\u06d4)<\/p>\n<p>\u0622\u0631\u0627\u0626\u0634\u06cc \u0639\u0646\u0627\u0635\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 (\u062c\u06cc\u0633\u06d2 \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06cc \u0644\u0637\u06cc\u0641 \u0634\u06a9\u0644\u06cc\u06ba\u060c \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2\u060c \u06cc\u0627 \u0645\u0644\u062d\u0642\u06c1 \u0648\u0636\u0627\u062d\u062a\u06cc \u0645\u062a\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0635\u0631\u06cc \u062a\u0635\u0648\u06cc\u0631\u06cc\u06ba)\u060c \u0622\u067e \u06a9\u0648 \u0627\u0646\u06c1\u06cc\u06ba \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <code>contentDescription = null<\/code>. \u0645\u0627\u062d\u0648\u0644 <code>contentDescription = null<\/code> \u062a\u062d\u0631\u06cc\u0631 \u06a9\u0648 \u0627\u0646 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u0633\u06d2 \u062e\u0627\u0631\u062c \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631\u0632 \u06a9\u0648 \u0628\u06d2 \u0645\u0639\u0646\u06cc \u0628\u0635\u0631\u06cc \u0634\u0648\u0631 \u0633\u06d2 \u0627\u0644\u062c\u06be\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-custom-semantics-and-state-descriptions\">\u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u0627\u0648\u0631 \u0631\u06cc\u0627\u0633\u062a \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644<\/h3>\n<p>\u062c\u0628 \u06a9\u0633\u06cc \u0639\u0646\u0635\u0631 \u06a9\u06cc \u062d\u0627\u0644\u062a \u0645\u062a\u062d\u0631\u06a9 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 (\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u067e\u0644\u06d2 \u0627\u0648\u0631 \u062a\u0648\u0642\u0641 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0633\u0648\u0626\u0686 \u06a9\u0631\u0646\u0627\u060c \u06cc\u0627 \u067e\u06be\u06cc\u0644\u0646\u0627 \u0627\u0648\u0631 \u06af\u0631\u0646\u0627)\u060c \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0639\u0646\u0635\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0639\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u062d\u0627\u0644\u062a \u0633\u06d2 \u0622\u06af\u0627\u06c1 \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0642\u0631\u0631 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 <code>stateDescription<\/code> \u0627\u0648\u0631 <code>role<\/code> \u0645\u06cc\u06ba <code>Modifier.semantics<\/code> \u0628\u0644\u0627\u06a9:<\/p>\n<pre><code class=\"language-kotlin\">var isPlaying by remember { mutableStateOf(false) }\n\nIconButton(\n    onClick = { isPlaying = !isPlaying },\n    modifier = Modifier.semantics {\n        \/\/ Explicitly declare what state the media player is in\n        stateDescription = if (isPlaying) \"Playing audio\" else \"Audio paused\"\n        role = Role.Button\n    }\n) {\n    Icon(\n        imageVector = if (isPlaying) Icons.Default.Pause else Icons.Default.PlayArrow,\n        contentDescription = if (isPlaying) \"Pause\" else \"Play\"\n    )\n}\n<\/code><\/pre>\n<h4 id=\"heading-how-it-works-under-the-hood\">\u06cc\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h4>\n<p>\u0628\u063a\u06cc\u0631 <code>stateDescription<\/code>TalkBack \u0635\u0631\u0641 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2 (&quot;\u067e\u0644\u06d2\u060c \u0628\u0679\u0646&#8221;)\u06d4 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u0622\u0688\u06cc\u0648 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2 \u06cc\u0627 \u0628\u0646\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u0634\u0627\u0645\u0644 \u06a9\u0631\u06a9\u06d2 <code>stateDescription<\/code>TalkBack \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <em>&quot;\u0622\u0688\u06cc\u0648 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u062a\u0648\u0642\u0641\u060c \u0628\u0679\u0646\u060c \u0633\u0648\u0626\u0686 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0628\u0627\u0631 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4&#8221;<\/em> \u06cc\u06c1 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u062d\u0627\u0644\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0627\u0648\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u06d2 \u0641\u0639\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-merge-semantics-with-mergedescendants\">mergeDescendants \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0636\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u067e\u06cc\u0686\u06cc\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba\u060c \u0628\u06c1\u062a \u0633\u06d2 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644\u0632 \u06a9\u0648 \u0627\u06a9\u062b\u0631 \u0627\u06cc\u06a9 \u0645\u0646\u0637\u0642\u06cc \u0634\u06d2 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0635\u0627\u0631\u0641 \u06a9\u06cc \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u0642\u0637\u0627\u0631 \u0645\u06cc\u06ba \u0627\u0648\u062a\u0627\u0631 \u06a9\u06cc \u062a\u0635\u0648\u06cc\u0631\u060c \u0635\u0627\u0631\u0641 \u0646\u0627\u0645\u060c \u0622\u0646 \u0644\u0627\u0626\u0646 \u0628\u06cc\u062c\u060c \u0627\u0648\u0631 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u0634\u0627\u0645\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679\u060c TalkBack \u062a\u0645\u0627\u0645 \u0628\u0686\u0648\u06ba \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Text<\/code> \u0627\u0648\u0631 <code>Image<\/code> \u0646\u0648\u0688\u0633 \u06a9\u0648 \u0622\u0632\u0627\u062f \u0627\u0633\u0679\u0627\u067e \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0627\u06cc\u06a9 \u0641\u06c1\u0631\u0633\u062a \u0622\u0626\u0679\u0645 \u0633\u06d2 \u06af\u0632\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u0627\u0631 \u06cc\u0627 \u067e\u0627\u0646\u0686 \u0628\u0627\u0631 \u0633\u0648\u0627\u0626\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba <code>Modifier.semantics(mergeDescendants = true)<\/code> \u062a\u0645\u0627\u0645 \u0686\u0627\u0626\u0644\u0688 \u0646\u0648\u0688\u0633 \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u0631\u0628\u0648\u0637 \u0631\u0633\u0627\u0626\u06cc \u0646\u0648\u0688 \u0645\u06cc\u06ba \u06cc\u06a9\u062c\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-kotlin\">\/\/ Bad: TalkBack focuses three separate times: \"Star icon\", \"4.5\", \"Customer rating\"\nRow(modifier = Modifier.clickable { \/* Navigate to reviews *\/ }) {\n    Icon(\n        imageVector = Icons.Default.Star,\n        contentDescription = \"Star icon\"\n    )\n    Text(text = \"4.5\")\n    Text(text = \"Customer rating\")\n}\n\n\/\/ Good: Merged into one single stop: \"Customer rating: 4.5 out of 5 stars, button\"\nRow(\n    modifier = Modifier\n        .clickable(onClickLabel = \"View all reviews\") { \/* Navigate to reviews *\/ }\n        .semantics(mergeDescendants = true) {\n            contentDescription = \"Customer rating: 4.5 out of 5 stars\"\n        }\n) {\n    Icon(\n        imageVector = Icons.Default.Star,\n        contentDescription = null \/\/ Suppressed because parent provides full description\n    )\n    Text(text = \"4.5\")\n    Text(text = \"Customer rating\")\n}\n<\/code><\/pre>\n<h4 id=\"heading-how-it-works-under-the-hood\">\u06cc\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h4>\n<p>\u062c\u0628 <code>mergeDescendants = true<\/code> \u0633\u06cc\u0679 \u06c1\u0648\u0646\u06d2 \u067e\u0631\u060c \u06a9\u0645\u067e\u0648\u0632 \u062a\u0645\u0627\u0645 \u0686\u0627\u0626\u0644\u0688 \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644\u0632 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062d\u062f\u0648\u062f \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u062f\u06d2 \u06af\u0627\u06d4 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u0679\u0627\u067e\u0633 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u06a9 \u06c1\u06cc \u0646\u0648\u0688 \u06a9\u0648 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 TalkBack \u067e\u0648\u0631\u06d2 \u0645\u0648\u0627\u062f \u067e\u0631 \u0641\u0648\u06a9\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Row<\/code> \u0627\u0633\u06d2 \u0633\u0646\u06af\u0644 \u0628\u0627\u0624\u0646\u0688\u0646\u06af \u0628\u0627\u06a9\u0633 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0648\u0627\u0644\u062f\u06cc\u0646 \u06a9\u06d2 \u0628\u0627\u0624\u0646\u0688\u0646\u06af \u0628\u0627\u06a9\u0633 \u06a9\u0648 \u067e\u0691\u06be\u06cc\u06ba\u06d4 <code>contentDescription<\/code>.<\/p>\n<h3 id=\"heading-how-to-clear-semantics-with-clearandsetsemantics\">ClearAndSetSemantics \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0635\u0627\u0641 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0628\u0639\u0636 \u062d\u0627\u0644\u0627\u062a \u0645\u06cc\u06ba\u060c \u0645\u0639\u06cc\u0627\u0631\u06cc \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u0688\u06cc\u0641\u0627\u0644\u0679 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0631\u0648\u06cc\u06c1 \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u062a\u062c\u0631\u0628\u06d2 \u0645\u06cc\u06ba \u062e\u0644\u0644 \u0688\u0627\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>Modifier.clearAndSetSemantics<\/code> \u0645\u0648\u0688\u06cc\u0641\u0627\u0626\u0631 \u0686\u0627\u0626\u0644\u0688 \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644\u0632 \u06cc\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0646\u0641\u0627\u0630 \u0633\u06d2 \u0648\u0631\u0627\u062b\u062a \u0645\u06cc\u06ba \u0645\u0644\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062a\u0645\u0627\u0645 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u0633 \u0633\u06d2 \u0622\u067e \u0635\u0627\u0641 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0633\u06cc\u0645\u0646\u0679\u06a9 \u062a\u0639\u0631\u06cc\u0641\u06cc\u06ba \u0628\u06cc\u0627\u0646 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-kotlin\">\/\/ A composite badge displaying notification count\nBox(\n    modifier = Modifier.clearAndSetSemantics {\n        contentDescription = \"3 unread messages\"\n        role = Role.Button\n    }\n) {\n    Icon(\n        imageVector = Icons.Default.Email,\n        contentDescription = \"Email icon\" \/\/ Cleared and ignored\n    )\n    Text(text = \"3\") \/\/ Cleared and ignored\n}\n<\/code><\/pre>\n<h4 id=\"heading-how-it-works-under-the-hood\">\u06cc\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h4>\n<p>\u063a\u06cc\u0631 \u0645\u0633\u0627\u0648\u06cc <code>Modifier.semantics<\/code>\u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc <em>\u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba<\/em> \u06cc\u0627 <em>\u062f\u0648\u0628\u0627\u0631\u06c1 \u0648\u0636\u0627\u062d\u062a<\/em> \u0645\u062e\u0635\u0648\u0635 \u06a9\u0644\u06cc\u062f\u060c <code>clearAndSetSemantics<\/code> \u0642\u0627\u0628\u0644 \u062a\u0631\u062a\u06cc\u0628 \u0630\u06cc\u0644\u06cc \u062f\u0631\u062e\u062a \u0645\u06cc\u06ba \u0628\u0646\u0627\u0626\u06cc \u06af\u0626\u06cc \u062a\u0645\u0627\u0645 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0644\u06cc\u062f\u0648\u06ba \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0648\u067e\u0631 \u06a9\u06cc \u0645\u062b\u0627\u0644 \u0645\u06cc\u06ba\u060c \u0627\u0644\u06af \u0627\u0644\u06af &quot;\u0627\u06cc \u0645\u06cc\u0644 \u0622\u0626\u06cc\u06a9\u0646&#8221; \u0627\u0648\u0631 &quot;3&#8221; \u0679\u06cc\u06a9\u0633\u0679 \u0646\u0648\u0688\u0633 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u0633\u06d2 \u0645\u0679\u0627 \u062f\u06cc\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06cc \u062c\u06af\u06c1 \u0627\u06cc\u06a9 \u06c1\u06cc \u0627\u0637\u0644\u0627\u0639 \u062f\u06d2 \u062f\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u06d4 <em>&quot;3 \u0628\u063a\u06cc\u0631 \u067e\u0691\u06be\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a\u060c \u0628\u0679\u0646\u06d4&#8221;<\/em><\/p>\n<h2 id=\"heading-essential-accessibility-practices\">\u0636\u0631\u0648\u0631\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2<\/h2>\n<p>\u0627\u0628 \u06c1\u0645 \u0627\u0646 \u06a9\u0644\u06cc\u062f\u06cc \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba\u060c \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06cc\u06c1 \u0648\u0636\u0627\u062d\u062a \u0628\u06be\u06cc \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u06c1\u0631 \u0645\u0634\u0642 \u06a9\u06cc\u0648\u06ba \u0627\u06c1\u0645 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-write-meaningful-content-descriptions\">\u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u06a9\u06cc\u0633\u06d2 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/h3>\n<p>\u0622\u067e \u06a9\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0645\u06cc\u06ba \u0645\u0648\u0627\u062f \u06a9\u06cc \u0645\u062e\u062a\u0635\u0631 \u0648\u0636\u0627\u062d\u062a \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <strong>\u0645\u0642\u0635\u062f<\/strong> \u06cc\u0627 <strong>\u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc<\/strong> \u06cc\u06c1 \u0627\u0633 \u06a9\u06cc \u0628\u0635\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u06cc\u06a9 \u0639\u0646\u0635\u0631 \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Descriptive, action-oriented label\nIconButton(onClick = { deleteDraft() }) {\n    Icon(\n        imageVector = Icons.Default.Delete,\n        contentDescription = \"Delete draft message\"\n    )\n}\n\n\/\/ Contextual weather information\nImage(\n    painter = painterResource(R.drawable.weather_sunny),\n    contentDescription = \"Current weather: Sunny, 75 degrees Fahrenheit\"\n)\n<\/code><\/pre>\n<p>\u0622\u0626\u06cc\u06a9\u0646 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0628\u062a\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u062c\u0628 \u0648\u06c1 \u0628\u0679\u0646 \u06a9\u0648 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 (&quot;\u0645\u0633\u0648\u062f\u06c1 \u067e\u06cc\u063a\u0627\u0645 \u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba&#8221;)\u06d4 \u0645\u0648\u0633\u0645 \u06a9\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0622\u0631\u0679 \u0627\u0633\u0679\u0627\u0626\u0644 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062d\u0642\u06cc\u0642\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06cc\u0679\u0627 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-what-not-to-do-antipattern\">\u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u0627\u06cc\u0646\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Avoid generic or redundant descriptions\nIconButton(onClick = { deleteDraft() }) {\n    Icon(\n        imageVector = Icons.Default.Delete,\n        contentDescription = \"Trash can icon button\" \/\/ Bad: includes visual style and element type\n    )\n}\n\n\/\/ Avoid empty strings on interactive elements\nIconButton(onClick = { openSettings() }) {\n    Icon(\n        imageVector = Icons.Default.Settings,\n        contentDescription = \"\" \/\/ Bad: leaves the button with no accessible label\n    )\n}\n<\/code><\/pre>\n<p>\u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u062c\u0632\u0648 \u06a9\u06d2 \u06a9\u0631\u062f\u0627\u0631 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 &#8216;\u0622\u0626\u06cc\u06a9\u0646&#8217; \u06cc\u0627 &#8216;\u0628\u0679\u0646&#8217; \u062c\u06cc\u0633\u06d2 \u0627\u0644\u0641\u0627\u0638 \u0628\u06d2 \u06a9\u0627\u0631 \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u062a\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba (<code>\"\"<\/code>) \u0627\u06cc\u06a9 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0639\u0646\u0635\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c TalkBack \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0628\u0627\u0645\u0639\u0646\u06cc \u0627\u0637\u0644\u0627\u0639\u06cc \u0645\u0648\u0627\u062f \u0646\u06c1\u06cc\u06ba \u0628\u0686\u0627 \u06c1\u06d2 (\u0627\u0633\u06d2 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0628\u063a\u06cc\u0631 \u0644\u06cc\u0628\u0644 \u0648\u0627\u0644\u06d2 \u0628\u0679\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u067e\u0691\u06be\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627)\u060c \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0628\u0679\u0646 \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0646\u06c1\u06cc\u06ba \u0645\u0644\u062a\u0627\u06d4 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u0627 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0686\u06cc\u06a9\u0631 \u062e\u0627\u0644\u06cc \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u06a9\u0648 \u06af\u0645\u0634\u062f\u06c1 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u062c\u06cc\u0633\u0627 \u06c1\u06cc \u0633\u0645\u062c\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-ensure-minimum-touch-target-sizes\">\u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u0633\u0627\u0626\u0632 \u06a9\u06cc \u0636\u0645\u0627\u0646\u062a \u06a9\u06cc\u0633\u06d2 \u062f\u06cc \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u06af\u0648\u06af\u0644 \u06a9\u06d2 \u0645\u06cc\u0679\u0631\u06cc\u0644 \u0688\u06cc\u0632\u0627\u0626\u0646 \u0627\u0648\u0631 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u06af\u0627\u0626\u06cc\u0688 \u0644\u0627\u0626\u0646\u0632 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642\u060c \u062a\u0645\u0627\u0645 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0639\u0646\u0627\u0635\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u0633\u0627\u0626\u0632 <strong>48dp x 48dp<\/strong>\u06cc\u06c1 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 9 \u0645\u0644\u06cc \u0645\u06cc\u0679\u0631 \u06a9\u06d2 \u062c\u0633\u0645\u0627\u0646\u06cc \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0645\u0633\u0627\u0648\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 7-10 \u0645\u0644\u06cc \u0645\u06cc\u0679\u0631 \u06a9\u06cc \u062d\u062f \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06c1\u06d2 \u062c\u0633\u06d2 \u06af\u0648\u06af\u0644 \u0679\u0686 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0627\u06c1\u062f\u0627\u0641 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06d2 \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2\u060c WCAG \u062e\u0648\u062f \u0627\u06cc\u06a9 \u06a9\u0645 \u0648\u06cc\u0628 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0628\u0627\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 WCAG 2.1 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06d2 \u0645\u0639\u06cc\u0627\u0631 2.5.5 \u06a9\u0648 AAA \u0633\u0637\u062d \u067e\u0631 44\u00d744 CSS \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u060c \u0627\u0648\u0631 WCAG 2.2 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06d2 \u0645\u0639\u06cc\u0627\u0631 2.5.8 \u06a9\u0648 AA \u0633\u0637\u062d \u067e\u0631 24\u00d724 CSS \u067e\u06a9\u0633\u0644\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 48dp \u0627\u0635\u0648\u0644 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u06a9\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u062e\u062a \u067e\u0644\u06cc\u0679 \u0641\u0627\u0631\u0645 \u0645\u0639\u06cc\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Method A: Using minimumInteractiveComponentSize()\nBox(\n    modifier = Modifier\n        .minimumInteractiveComponentSize() \/\/ Expands touch area to 48dp x 48dp\n        .clickable { \/* Toggle bookmark *\/ }\n) {\n    Icon(\n        imageVector = Icons.Default.Bookmark,\n        contentDescription = \"Bookmark article\",\n        modifier = Modifier.size(24.dp) \/\/ Visual size is 24dp, touch target is 48dp\n    )\n}\n\n\/\/ Method B: Standard IconButton (built-in 48dp target)\nIconButton(onClick = { \/* Toggle bookmark *\/ }) {\n    Icon(\n        imageVector = Icons.Default.Bookmark,\n        contentDescription = \"Bookmark article\"\n    )\n}\n<\/code><\/pre>\n<p><code>Modifier.minimumInteractiveComponentSize()<\/code>    \u063a\u06cc\u0631 \u0645\u0631\u0626\u06cc\u060c \u0642\u0627\u0628\u0644 \u06a9\u0644\u06a9 \u06c1\u0679 \u0628\u0627\u06a9\u0633\u0632 \u06a9\u0648 48dp \u00d7 48dp \u062a\u06a9 \u067e\u06be\u06cc\u0644\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u0635\u0631\u06cc \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0648 \u06a9\u0645\u067e\u06cc\u06a9\u0679 \u0631\u06a9\u06be\u06cc\u06ba (\u0645\u062b\u0644\u0627\u064b 24dp \u0622\u0626\u06cc\u06a9\u0646\u0632)\u06d4 \u06cc\u06c1 \u0645\u0648\u0679\u0631 \u06a9\u06d2 \u062c\u06be\u0679\u06a9\u06d2 \u06cc\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0627\u0631\u06cc\u06a9 \u0645\u0648\u0679\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0648\u0627\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0686\u06be\u0648\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-what-not-to-do-antipattern\">\u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u0627\u06cc\u0646\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Bad: Tightly constrained 20dp clickable area\nIcon(\n    imageVector = Icons.Default.Close,\n    contentDescription = \"Close dialog\",\n    modifier = Modifier\n        .size(20.dp)\n        .clickable { dismissDialog() } \/\/ Touch target is strictly 20dp x 20dp!\n)\n<\/code><\/pre>\n<p>20dp \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0679\u06cc\u067e \u06a9\u0631\u0646\u0627 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0646\u0627\u0645\u0645\u06a9\u0646 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u062b\u0627\u0641\u062a \u0648\u0627\u0644\u06d2 \u0688\u0633\u067e\u0644\u06d2 \u067e\u0631 \u06cc\u0627 \u0686\u0644\u062a\u06d2 \u0648\u0642\u062a\u06d4 \u06af\u0648\u06af\u0644 \u06a9\u0627 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0686\u06cc\u06a9\u0631 \u0627\u0633\u06d2 \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u0627\u06cc\u0634\u0648 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062c\u06be\u0646\u0688\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-maintain-accessible-color-contrast-ratios\">\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0631\u0646\u06af \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u062a\u0646\u0627\u0633\u0628 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u06a9\u0644\u0631 \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u067e\u06cc\u0634 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u0645\u062a\u0646 \u0627\u0648\u0631 \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0631\u0648\u0634\u0646\u06cc \u06a9\u06d2 \u0641\u0631\u0642 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0645\u062a\u0636\u0627\u062f \u062a\u0646\u0627\u0633\u0628 \u0628\u06c1\u062a \u06a9\u0645 \u06c1\u06d2 \u062a\u0648\u060c \u06a9\u0645 \u0628\u06cc\u0646\u0627\u0626\u06cc\u060c \u0631\u0646\u06af \u0627\u0646\u062f\u06be\u0627 \u067e\u0646\u060c \u06cc\u0627 \u067e\u0631\u06cc\u0633\u0628\u06cc\u0648\u067e\u06cc\u0627 \u0648\u0627\u0644\u06d2 \u0644\u0648\u06af \u0645\u062a\u0646 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<p>WCAG 2.1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u062a\u0646\u0627\u0633\u0628 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u06a9\u06cc \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a WCAG \u0645\u06cc\u06ba \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u0648 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba: <code>sp<\/code>):<\/p>\n<ul>\n<li>\n<p><strong>\u0633\u0627\u062f\u06c1 \u0645\u062a\u0646 (18sp \u0633\u06d2 \u06a9\u0645 \u06cc\u0627 14sp \u0633\u06d2 \u06a9\u0645 \u0628\u0648\u0644\u0688):<\/strong> \u06a9\u0645 \u0627\u0632 \u06a9\u0645 <strong>4.5:1<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u0691\u0627 \u0645\u062a\u0646 (18sp \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0628\u0691\u0627 \u06cc\u0627 14sp \u0628\u0648\u0644\u0688 \u06cc\u0627 \u0628\u0691\u0627):<\/strong> \u06a9\u0645 \u0627\u0632 \u06a9\u0645 <strong>3.0:1<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>UI \u0627\u062c\u0632\u0627\u0621 \u0627\u0648\u0631 \u06af\u0631\u0627\u0641\u06cc\u06a9\u0644 \u0627\u0634\u06cc\u0627\u0621:<\/strong> \u06a9\u0645 \u0627\u0632 \u06a9\u0645 <strong>3.0:1<\/strong><\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Using Material 3 color tokens (paired roles maintain usable contrast)\nText(\n    text = \"Account Overview\",\n    color = MaterialTheme.colorScheme.onPrimaryContainer,\n    modifier = Modifier.background(MaterialTheme.colorScheme.primaryContainer)\n)\n\n\/\/ Explicit high-contrast colors (for example, Black on White = 21:1 ratio)\nText(\n    text = \"Order Confirmed\",\n    color = Color(0xFF1B5E20), \/\/ Dark green\n    modifier = Modifier.background(Color(0xFFE8F5E9)) \/\/ Light green tint\n)\n<\/code><\/pre>\n<p>\u0645\u0648\u0627\u062f 3 \u0631\u0646\u06af\u06cc\u0646 \u0679\u0648\u06a9\u0646\u0632\u060c \u062c\u06cc\u0633\u06d2 <code>onPrimaryContainer<\/code> \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u0627 <code>primaryContainer<\/code>) \u0645\u0679\u06cc\u0631\u06cc\u0644 \u06a9\u0644\u0631 \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 &quot;\u0622\u0646&#8221; \u0631\u0646\u06af \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0631\u0646\u06af \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062f\u0633\u062a\u06cc\u0627\u0628 \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u06c1\u0644\u06a9\u06d2 \u0627\u0648\u0631 \u06af\u06c1\u0631\u06d2 \u062f\u0648\u0646\u0648\u06ba \u062a\u06be\u06cc\u0645\u0632 \u0645\u06cc\u06ba \u062c\u0648\u0691\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0628\u0631\u0627\u0646\u0688 \u06a9\u06d2 \u0631\u0646\u06af\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<h4 id=\"heading-what-not-to-do-antipattern\">\u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u0627\u06cc\u0646\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Bad: Light gray on pure white (Contrast ratio ~ 1.6:1 - Fails WCAG)\nText(\n    text = \"Terms and Conditions apply\",\n    color = Color(0xFFB0B0B0),\n    modifier = Modifier.background(Color.White)\n)\n<\/code><\/pre>\n<p>\u0633\u0641\u06cc\u062f \u067e\u0633 \u0645\u0646\u0638\u0631 \u067e\u0631 \u06c1\u0644\u06a9\u0627 \u0628\u06be\u0648\u0631\u06cc \u0631\u0646\u06af \u06a9\u0627 \u0645\u062a\u0646 \u0645\u0648\u0628\u0627\u0626\u0644 \u0648\u06cc\u0628 \u0627\u0648\u0631 \u0645\u0642\u0627\u0645\u06cc \u0627\u06cc\u067e\u0633 \u067e\u0631 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0639\u0627\u0645 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062e\u0644\u0627\u0641 \u0648\u0631\u0632\u06cc\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06d2\u06d4 \u0631\u0648\u0634\u0646 \u0645\u062d\u06cc\u0637\u06cc \u0631\u0648\u0634\u0646\u06cc \u0645\u06cc\u06ba\u060c \u0628\u0635\u0627\u0631\u062a \u0648\u0627\u0644\u06d2 \u0627\u0648\u0631 \u06a9\u0645 \u0628\u0635\u0627\u0631\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0633 \u0645\u062a\u0646 \u06a9\u0648 \u0646\u06c1\u06cc\u06ba \u067e\u0691\u06be \u0633\u06a9\u062a\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-provide-custom-clickable-labels\">\u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u06a9\u0644\u06a9 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0644\u06cc\u0628\u0644 \u06a9\u06cc\u0633\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062c\u0628 \u06a9\u0648\u0626\u06cc \u0635\u0627\u0631\u0641 \u0642\u0627\u0628\u0644 \u06a9\u0644\u06a9 \u0639\u0646\u0635\u0631 \u067e\u0631 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 TalkBack \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0688\u06cc\u0641\u0627\u0644\u0679 \u06c1\u062f\u0627\u06cc\u0627\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <em>&quot;\u0641\u0639\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0628\u0627\u0631 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4&#8221;<\/em><\/p>\n<p>\u0622\u067e \u0627\u0646 \u06c1\u062f\u0627\u06cc\u0627\u062a \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>onClickLabel<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 <code>Modifier.clickable<\/code> \u062a\u0639\u0627\u0645\u0644 \u06a9\u0627 \u0635\u062d\u06cc\u062d \u0646\u062a\u06cc\u062c\u06c1 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">ListItem(\n    headlineContent = { Text(\"Wi-Fi Networks\") },\n    supportingContent = { Text(\"Connected to Office_5G\") },\n    modifier = Modifier.clickable(\n        onClickLabel = \"Open Wi-Fi network settings\"\n    ) {\n        navigateToWifiSettings()\n    }\n)\n<\/code><\/pre>\n<p>TalkBack \u0622\u067e \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2: <em>&quot;Wi-Fi \u0646\u06cc\u0679 \u0648\u0631\u06a9\u060c Office_5G \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9\u060c Wi-Fi \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0648 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0628\u0627\u0631 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4&#8221;<\/em> \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0628\u062e\u0648\u0628\u06cc \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0627 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<h4 id=\"heading-what-not-to-do-antipattern\">\u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u0627\u06cc\u0646\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Bad: Generic clickable element without context\nCard(\n    modifier = Modifier.clickable { openInvoiceDetails() }\n) {\n    Text(\"Invoice #4092\")\n}\n<\/code><\/pre>\n<p>TalkBack \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <em>&quot;\u0627\u0646\u0648\u0627\u0626\u0633 #4092\u060c \u0686\u0627\u0644\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0628\u0627\u0631 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4&#8221;<\/em> \u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u06cc\u0642\u06cc\u0646 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0628\u0644 \u0627\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u06cc\u067e \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u067e\u06cc \u0688\u06cc \u0627\u06cc\u0641 \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u06cc\u0627 \u0627\u06cc\u0688\u06cc\u0679\u0646\u06af \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u06be\u0648\u0644\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-establish-heading-hierarchies\">\u0639\u0646\u0648\u0627\u0646 \u06a9\u0627 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u0628\u0635\u0631\u06cc \u0642\u0627\u0631\u0626\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0627\u0648\u0631 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0691\u06d2\u060c \u0628\u0648\u0644\u0688 \u0679\u06cc\u06a9\u0633\u0679 \u06c1\u06cc\u0688\u0646\u06af\u0632 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0633\u06cc \u0633\u0627\u062e\u062a\u06cc \u062c\u0627\u0626\u0632\u06c1 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u06d2 \u06a9\u0631 <code>heading()<\/code> \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0645\u0648\u0688\u06cc\u0641\u0627\u0626\u0631 \u0679\u06cc\u06a9\u0633\u0679 \u0646\u0648\u0688 \u06a9\u0648 \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0639\u0646\u0648\u0627\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0645\u0648\u0688 \u06a9\u0648 &#8216;\u0679\u0627\u0626\u0679\u0644&#8217; \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0633\u06cc\u06a9\u0634\u0646\u0632 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062c\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0627\u0648\u067e\u0631 \u06cc\u0627 \u0646\u06cc\u0686\u06d2 \u0633\u0648\u0627\u0626\u067e \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">Column(modifier = Modifier.padding(16.dp)) {\n    \/\/ Screen title heading\n    Text(\n        text = \"Security Settings\",\n        style = MaterialTheme.typography.headlineMedium,\n        modifier = Modifier.semantics { heading() }\n    )\n\n    Spacer(modifier = Modifier.height(16.dp))\n\n    \/\/ Section 1 heading\n    Text(\n        text = \"Two-Factor Authentication\",\n        style = MaterialTheme.typography.titleMedium,\n        modifier = Modifier.semantics { heading() }\n    )\n    \n    \/\/ Section 1 content...\n\n    Spacer(modifier = Modifier.height(16.dp))\n\n    \/\/ Section 2 heading\n    Text(\n        text = \"Connected Devices\",\n        style = MaterialTheme.typography.titleMedium,\n        modifier = Modifier.semantics { heading() }\n    )\n    \n    \/\/ Section 2 content...\n}\n<\/code><\/pre>\n<p>TalkBack \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u062f\u0631\u062c\u0646\u0648\u06ba \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0633\u0648\u0626\u0686\u0632 \u0627\u0648\u0631 \u06c1\u062f\u0627\u06cc\u0627\u062a \u06a9\u0648 \u0646\u0638\u0631\u0627\u0646\u062f\u0627\u0632 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u06cc\u06a9\u0646\u0688\u0648\u06ba \u0645\u06cc\u06ba \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a &quot;\u06a9\u0646\u06cc\u06a9\u0679\u0688 \u0688\u06cc\u0648\u0627\u0626\u0633\u0632&#8221; \u067e\u0631 \u062c\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-what-not-to-do-antipattern\">\u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u0627\u06cc\u0646\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Bad: Visual heading without semantic markup\nText(\n    text = \"Two-Factor Authentication\",\n    style = MaterialTheme.typography.titleLarge \/\/ Visually large, but invisible as a heading to TalkBack\n)\n<\/code><\/pre>\n<p>\u0628\u063a\u06cc\u0631 <code>semantics { heading() }<\/code>TalkBack \u0645\u062a\u0646 \u06a9\u0648 \u0633\u0627\u062f\u06c1 \u0628\u0627\u0688\u06cc \u06a9\u0627\u067e\u06cc \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0639\u0646\u0648\u0627\u0646 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-announce-dynamic-updates-with-live-regions\">\u0644\u0627\u0626\u06cc\u0648 \u0632\u0648\u0646\u0632 \u0645\u06cc\u06ba \u0645\u062a\u062d\u0631\u06a9 \u0627\u067e \u0688\u06cc\u0679\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062c\u0628 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u0645\u0648\u0627\u062f \u0645\u062a\u0636\u0627\u062f \u0637\u0648\u0631 \u067e\u0631 \u0627\u067e \u0688\u06cc\u0679 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 (\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0679\u0627\u0626\u0645\u0631 \u06a9\u0627\u0624\u0646\u0679 \u0688\u0627\u0624\u0646\u060c \u0641\u0627\u0626\u0644 \u0627\u067e \u0644\u0648\u0688 \u0645\u06a9\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u067e\u06cc\u063a\u0627\u0645\u060c \u06cc\u0627 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u062a\u0648\u062b\u06cc\u0642 \u0628\u06cc\u0646\u0631)\u060c \u0646\u0638\u0631 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0645\u0639\u0644\u0648\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u06af\u0627 \u06a9\u06c1 \u06a9\u06cc\u0627 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06c1\u0648\u0626\u06cc \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e \u062a\u0628\u062f\u06cc\u0644\u06cc \u0648\u0627\u0644\u06d2 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0646\u0634\u0627\u0646 \u0632\u062f \u0646\u06c1 \u06a9\u0631\u06cc\u06ba: <strong>\u0632\u0646\u062f\u06c1 \u0639\u0644\u0627\u0642\u06c1<\/strong>.<\/p>\n<p>\u06a9\u0645\u067e\u0648\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u062a\u0642\u0648\u06cc\u062a \u06cc\u0627\u0641\u062a\u06c1 <code>liveRegion = LiveRegionMode.Polite<\/code> \u0627\u0648\u0631 <code>liveRegion = LiveRegionMode.Assertive<\/code>:<\/p>\n<ul>\n<li>\n<p><code>LiveRegionMode.Polite<\/code><strong>:<\/strong> TalkBack \u0627\u067e \u0688\u06cc\u0679\u0633 \u067e\u0691\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0622\u0688\u06cc\u0648 \u0627\u0639\u0644\u0627\u0646 \u06a9\u06d2 \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0641\u06cc\u0686\u0631 \u06a9\u0648 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0627\u0633\u0679\u06cc\u0679\u0633 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>LiveRegionMode.Assertive<\/code><strong>:<\/strong> \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0622\u067e \u06a9\u0648 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u062f\u0648\u0633\u0631\u06d2 \u062a\u0627\u062b\u0631\u0627\u062a \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u06cc \u0627\u0637\u0644\u0627\u0639 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u0642\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u062d\u0633\u0627\u0633 \u0627\u0648\u0631 \u0641\u0648\u0631\u06cc \u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a (\u062c\u06cc\u0633\u06d2 \u06c1\u0646\u06af\u0627\u0645\u06cc \u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a) \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u062e\u062a\u06cc \u0633\u06d2 \u0645\u062d\u0641\u0648\u0638 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">var uploadStatus by remember { mutableStateOf(\"Ready to upload\") }\n\nText(\n    text = uploadStatus,\n    modifier = Modifier.semantics {\n        liveRegion = LiveRegionMode.Polite\n    }\n)\n\n\/\/ Later, when upload finishes:\nLaunchedEffect(Unit) {\n    performUpload()\n    uploadStatus = \"Upload complete! 12 files saved.\"\n}\n<\/code><\/pre>\n<p>\u062c\u06cc\u0633\u06d2 \u06c1\u06cc <code>uploadStatus<\/code> \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 TalkBack \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0628\u0648\u0644\u06d2 \u06af\u0627\u06d4 <em>&quot;\u0627\u067e \u0644\u0648\u0688 \u0645\u06a9\u0645\u0644! 12 \u0641\u0627\u0626\u0644\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06c1\u0648 \u06af\u0626\u06cc\u06ba\u06d4&#8221;<\/em> \u0628\u0635\u0627\u0631\u062a \u0633\u06d2 \u0645\u062d\u0631\u0648\u0645 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u06a9\u0645\u0644 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-support-dynamic-text-scaling\">\u0645\u062a\u062d\u0631\u06a9 \u0645\u062a\u0646 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u0645 \u0628\u0635\u0627\u0631\u062a \u0648\u0627\u0644\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u06a9\u062b\u0631 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0633\u06cc\u0679\u0646\u06af\u0632 (\u0646\u06cc\u0686\u06d2) \u0645\u06cc\u06ba \u0633\u0633\u0679\u0645 \u0641\u0648\u0646\u0679 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u0628\u0691\u06be\u0627 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <strong>\u0646\u0634\u0627\u0646<\/strong> \u06cc\u0627 \u0622\u067e \u06a9\u06d2 \u0622\u0644\u06d2 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a)\u06d4 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 14 \u0627\u0648\u0631 \u0627\u0633 \u0633\u06d2 \u0627\u0648\u067e\u0631 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <strong>\u063a\u06cc\u0631 \u0644\u06a9\u06cc\u0631\u06cc \u0641\u0648\u0646\u0679 \u0633\u0627\u0626\u0632 200% \u062a\u06a9<\/strong>.<\/p>\n<p>\u0627\u0633 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u062a\u0631\u062c\u06cc\u062d \u06a9\u0627 \u0627\u062d\u062a\u0631\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0645\u062a\u0646 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0633\u0627\u0626\u0632 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u0627\u0633 \u0645\u06cc\u06ba \u06a9\u0631\u0646\u06cc \u06c1\u0648\u06af\u06cc: <code>sp<\/code> <strong>(\u0627\u0633\u06a9\u06cc\u0644 \u0633\u06d2 \u0622\u0632\u0627\u062f \u067e\u06a9\u0633\u0644\u0632)<\/strong>\u06a9\u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba <code>dp<\/code> \u06cc\u0627 \u062e\u0627\u0645 \u067e\u06a9\u0633\u0644\u0632\u06d4<\/p>\n<h4 id=\"heading-what-to-do-recommended-practice\">\u06a9\u06cc\u0627 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0645\u0634\u0642)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Good: Using Material Typography (uses sp automatically)\nText(\n    text = \"Dashboard Summary\",\n    style = MaterialTheme.typography.titleMedium\n)\n\n\/\/ Good: Explicit sp sizing\nText(\n    text = \"Custom Label\",\n    fontSize = 18.sp\n)\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u0641\u0648\u0646\u0679 \u06a9\u0627 \u0633\u0627\u0626\u0632 1.5\u00d7 \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 18sp \u0641\u0648\u0646\u0679 \u0635\u0627\u0641 \u0637\u0648\u0631 \u067e\u0631 27sp \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0631\u06cc\u0646\u0688\u0631 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627\u060c \u062c\u0633 \u0633\u06d2 \u0645\u062a\u0646 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<h4 id=\"heading-what-not-to-do-antipattern\">\u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u06c1\u06d2 (\u0627\u06cc\u0646\u0679\u06cc \u067e\u06cc\u0679\u0631\u0646)<\/h4>\n<pre><code class=\"language-kotlin\">\/\/ Bad: Fixed dp size converted to sp (does not scale with system settings)\nText(\n    text = \"Fixed Size Warning\",\n    fontSize = with(LocalDensity.current) { 16.dp.toSp() } \/\/ Will not scale!\n)\n<\/code><\/pre>\n<p>\u0641\u06a9\u0633\u0688 \u0679\u06cc\u06a9\u0633\u0679 \u0633\u0627\u0626\u0632 \u0627\u06cc\u0688\u062c\u0633\u0679\u0645\u0646\u0679 <code>dp<\/code> \u062c\u0628 \u0635\u0627\u0631\u0641 \u0633\u0633\u0679\u0645 \u0641\u0648\u0646\u0679 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u0628\u0691\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u067e\u06cc\u0645\u0627\u0626\u0634 \u0645\u062a\u0646 \u06a9\u0648 \u0648\u0633\u0639\u062a \u062f\u06cc\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9 \u06a9\u0631 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0645\u0639\u06cc\u0627\u0631\u0627\u062a \u06a9\u06cc \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062e\u0644\u0627\u0641 \u0648\u0631\u0632\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-advanced-accessibility-techniques\">\u0627\u0639\u0644\u06cc \u062f\u0631\u062c\u06d2 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc\u0632<\/h2>\n<p>\u067e\u06cc\u0686\u06cc\u062f\u06c1\u060c \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u06af\u0631\u06cc\u0688 \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u06c1\u0645 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0639\u0644\u06cc\u0670 \u062f\u0631\u062c\u06d2 \u06a9\u06cc \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc\u0632 \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-control-traversal-and-focus-order\">\u0679\u0631\u0627\u0648\u0631\u0633\u0644 \u0627\u0648\u0631 \u0641\u0648\u06a9\u0633 \u0622\u0631\u0688\u0631 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0637\u0648\u0631 \u067e\u0631\u060c \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062e\u062f\u0645\u0627\u062a \u0628\u0635\u0631\u06cc \u0627\u0648\u0631 \u0633\u0627\u062e\u062a\u06cc \u0646\u0642\u0627\u0637 (\u0627\u0648\u067e\u0631 \u0633\u06d2 \u0646\u06cc\u0686\u06d2\u060c \u0634\u0631\u0648\u0639 \u0633\u06d2 \u0622\u062e\u0631 \u062a\u06a9) \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0639\u0646\u0627\u0635\u0631 \u067e\u0631 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0645\u0644\u0679\u06cc \u06a9\u0627\u0644\u0645 \u0644\u06d2 \u0622\u0624\u0679\u0633\u060c \u0641\u0646\u0627\u0646\u0634\u0644 \u0644\u06cc\u062c\u0631\u0632\u060c \u06cc\u0627 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u06af\u0631\u0688\u0632 \u0645\u06cc\u06ba\u060c \u06cc\u06c1 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0622\u0631\u0688\u0631 \u0645\u0628\u06c1\u0645 \u0646\u0648\u0679\u0633 \u0628\u0646\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0622\u0631\u0688\u0631 \u06a9\u0648 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>traversalIndex<\/code> \u0627\u0648\u0631 <code>isTraversalGroup<\/code>:<\/p>\n<pre><code class=\"language-kotlin\">Column(\n    modifier = Modifier.semantics { isTraversalGroup = true }\n) {\n    Text(\n        text = \"Step 1: Account Info\",\n        modifier = Modifier.semantics { traversalIndex = 1f }\n    )\n    \n    Text(\n        text = \"Step 3: Confirmation\",\n        modifier = Modifier.semantics { traversalIndex = 3f }\n    )\n    \n    Text(\n        text = \"Step 2: Payment Details\",\n        modifier = Modifier.semantics { traversalIndex = 2f }\n    )\n}\n<\/code><\/pre>\n<p>\u06a9\u0648\u0688 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p>\u0645\u0627\u062d\u0648\u0644 <code>isTraversalGroup = true<\/code> \u0627\u06cc\u06a9 \u062e\u0648\u062f\u0645\u062e\u062a\u0627\u0631 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0628\u0627\u0624\u0646\u0688\u0631\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u06a9\u0648 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u06d2 \u062f\u06cc\u06af\u0631 \u0639\u0646\u0627\u0635\u0631 \u067e\u0631 \u062c\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u067e\u0631 \u0645\u062c\u0628\u0648\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <code>traversalIndex<\/code> \u0641\u0644\u0648\u0679\u0646\u06af \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u06cc \u0642\u062f\u0631\u06cc\u06ba \u062f\u0631\u0633\u062a \u0631\u0634\u062a\u06c1 \u062f\u0627\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0642\u0627\u0626\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba (\u0633\u0628 \u0633\u06d2 \u06a9\u0645 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u067e\u06c1\u0644\u06d2)\u06d4 TalkBack \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0627\u0646 \u06a9\u06cc \u0628\u0635\u0631\u06cc \u062c\u06af\u06c1 \u0633\u06d2 \u0642\u0637\u0639 \u0646\u0638\u0631\u060c 1\u060c 2\u060c \u0627\u0648\u0631 \u0622\u062e\u0631 \u0645\u06cc\u06ba 3 \u06a9\u0648 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-how-to-create-custom-accessibility-actions\">\u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0627\u06cc\u06a9\u0634\u0646\u0632 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0627\u06cc\u06a9 \u0627\u06cc \u06a9\u0627\u0645\u0631\u0633 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u0627\u0631\u0688 \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0633 \u0645\u06cc\u06ba &quot;\u06a9\u0648\u0626\u06cc\u06a9 \u0648\u06cc\u0648&#8221;\u060c &quot;\u0627\u0634\u062a\u06c1\u0627\u0631\u06cc \u0641\u06c1\u0631\u0633\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba&#8221; \u0627\u0648\u0631 &quot;\u06a9\u0627\u0631\u0679 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba&#8221; \u06a9\u06d2 \u0628\u0679\u0646 \u0634\u0627\u0645\u0644 \u06c1\u0648\u06ba\u06d4 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0644\u06af\u0627\u062a\u0627\u0631 20 \u06a9\u0627\u0631\u0688\u0632 \u067e\u0631 \u062a\u06cc\u0646 \u0627\u0644\u06af \u0627\u0644\u06af \u0628\u0679\u0646\u0648\u06ba \u06a9\u0648 \u0679\u06cc\u067e \u06a9\u0631\u0646\u0627 \u0627\u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u06a9\u0627\u0645 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06d2 \u0633\u0627\u062a\u06be <code>customActions<\/code>\u0622\u067e \u06a9\u0648 \u062b\u0627\u0646\u0648\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u067e\u06cc\u0631\u0646\u0679 \u06a9\u0627\u0631\u0688 \u0646\u0648\u0688 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0628 \u06a9\u0627\u0631\u0688 \u067e\u0631 \u0641\u0648\u06a9\u0633 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 TalkBack \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0645\u0637\u0644\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2 \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 TalkBack \u0645\u06cc\u0646\u0648 \u06a9\u06be\u0648\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-kotlin\">var isBookmarked by remember { mutableStateOf(false) }\n\nCard(\n    modifier = Modifier\n        .fillMaxWidth()\n        .semantics {\n            customActions = listOf(\n                CustomAccessibilityAction(\n                    label = if (isBookmarked) \"Remove from bookmarks\" else \"Add to bookmarks\",\n                    action = {\n                        isBookmarked = !isBookmarked\n                        true \/\/ Return true to indicate the action was handled\n                    }\n                ),\n                CustomAccessibilityAction(\n                    label = \"Share article link\",\n                    action = {\n                        shareArticle()\n                        true\n                    }\n                )\n            )\n        }\n) {\n    \/\/ Visual card content...\n}\n<\/code><\/pre>\n<p>\u062c\u0628 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0635\u0627\u0631\u0641 \u06a9\u0627\u0631\u0688 \u067e\u0631 \u0641\u0648\u06a9\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0627\u0646\u06c1\u06cc\u06ba \u0645\u0637\u0644\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u06d4 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0645\u06cc\u0646\u0648 \u06a9\u06be\u0648\u0644\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0627\u06cc\u06a9 \u0635\u0627\u0641 \u0633\u062a\u06be\u0631\u0627 \u0641\u06c1\u0631\u0633\u062a \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0633 \u0645\u06cc\u06ba &#8216;\u0628\u06a9 \u0645\u0627\u0631\u06a9\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba&#8217; \u0627\u0648\u0631 &#8216;\u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0627 \u0644\u0646\u06a9 \u0634\u06cc\u0626\u0631 \u06a9\u0631\u06cc\u06ba&#8217; \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0628\u062c\u0644\u06cc \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u0648\u0631 \u0645\u0648\u062b\u0631 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u0635\u0631\u06cc \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-design-accessible-form-inputs-and-text-fields\">\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0641\u0627\u0631\u0645 \u0627\u0646 \u067e\u0679 \u0627\u0648\u0631 \u0679\u06cc\u06a9\u0633\u0679 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0641\u0627\u0631\u0645 \u0627\u0646 \u067e\u0679 \u06a9\u0648 \u0628\u0635\u0631\u06cc \u067e\u0644\u06cc\u0633 \u06c1\u0648\u0644\u0688\u0631\u0632 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0627\u0636\u062d \u0644\u06cc\u0628\u0644\u0632\u060c \u0648\u0627\u0636\u062d \u0627\u0646 \u067e\u0679 \u0642\u0633\u0645 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2\u060c \u0627\u0648\u0631 \u0645\u0646\u0637\u0642\u06cc \u06a9\u06cc \u0628\u0648\u0631\u0688 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-kotlin\">var emailValue by remember { mutableStateOf(\"\") }\n\nOutlinedTextField(\n    value = emailValue,\n    onValueChange = { emailValue = it },\n    label = { Text(\"Work Email\") },\n    placeholder = { Text(\"alex@example.com\") },\n    singleLine = true,\n    keyboardOptions = KeyboardOptions(\n        keyboardType = KeyboardType.Email,\n        imeAction = ImeAction.Next\n    ),\n    keyboardActions = KeyboardActions(\n        onNext = { \/* Move focus to password field *\/ }\n    ),\n    modifier = Modifier\n        .fillMaxWidth()\n        .semantics {\n            contentDescription = \"Work email address input field\"\n        }\n)\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u06a9\u06c1 <code>label<\/code> \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644\u0632 \u0645\u0633\u062a\u0642\u0644 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u0646 \u067e\u0679 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06be\u06cc \u0646\u0638\u0631 \u0622\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>keyboardType = KeyboardType.Email<\/code>    \u0627\u06cc\u0646\u0688\u0631\u0648\u0626\u06cc\u0688 \u06a9\u0648 \u0627\u06cc \u0645\u06cc\u0644 (\u0634\u0627\u0645\u0644) \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06a9\u06cc \u0628\u0648\u0631\u0688 \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>@<\/code> \u0627\u0648\u0631 <code>.com<\/code> \u0634\u0627\u0631\u0679 \u06a9\u0679) \u0627\u0648\u0631 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0627\u06cc \u0645\u06cc\u0644 \u0646\u062d\u0648 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u062e\u062f\u0645\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>imeAction = ImeAction.Next<\/code>    \u06c1\u0627\u0631\u0688 \u0648\u06cc\u0626\u0631 \u06a9\u06cc \u0628\u0648\u0631\u0688 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u0644\u06c1 \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u06a9\u06cc \u0628\u0648\u0631\u0688 Enter \u06a9\u0644\u06cc\u062f \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0648\u0626\u0686 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0641\u0627\u0631\u0645 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0631\u06a9\u0627\u0648\u0679 \u06a9\u06d2 \u0622\u06af\u06d2 \u0628\u0691\u06be \u0633\u06a9\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-how-to-communicate-dynamic-error-states\">\u0645\u062a\u062d\u0631\u06a9 \u062e\u0631\u0627\u0628\u06cc \u06a9\u06d2 \u062d\u0627\u0644\u0627\u062a \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0627\u062a \u0686\u06cc\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06af\u0631 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0633\u0627\u0626\u06cc\u0688 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u0628\u0635\u0631\u06cc \u0628\u0627\u0631\u0688\u0631 \u06a9\u0648 \u0633\u0631\u062e \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u06a9\u0627\u0641\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0627\u06cc\u0631\u0631 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631\u0632 \u06a9\u0648 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u0637\u0644\u0639 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-kotlin\">var password by remember { mutableStateOf(\"\") }\nval isPasswordInvalid = password.isNotEmpty() && password.length < 8\n\nOutlinedTextField(\n    value = password,\n    onValueChange = { password = it },\n    label = { Text(\"Password\") },\n    isError = isPasswordInvalid,\n    supportingText = {\n        if (isPasswordInvalid) {\n            Text(\n                text = \"Password must be at least 8 characters long\",\n                color = MaterialTheme.colorScheme.error\n            )\n        }\n    },\n    modifier = Modifier\n        .fillMaxWidth()\n        .semantics {\n            if (isPasswordInvalid) {\n                error(\"Password must be at least 8 characters long\")\n            }\n        }\n)\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<p>\u06a9\u06c1 <code>isError = isPasswordInvalid<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0628\u0635\u0631\u06cc \u0627\u0646\u062f\u0627\u0632 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba (\u0633\u0631\u062e \u062e\u0627\u06a9\u06c1 \u0627\u0648\u0631 \u0627\u06cc\u0631\u0631 \u0622\u0626\u06cc\u06a9\u0646)\u06d4<\/p>\n<ul>\n<li>\u06a9\u06c1 <code>error(\"...\")<\/code> \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0627\u0646\u062a\u0633\u0627\u0628 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u06a9\u0648 \u06c1\u062f\u0627\u06cc\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0648\u06c1 \u0627\u0633 \u0639\u0646\u0635\u0631 \u06a9\u0648 \u063a\u0644\u0637 \u0633\u0645\u062c\u06be\u06d2 \u0627\u0648\u0631 \u062c\u06cc\u0633\u06d2 \u06c1\u06cc \u0635\u0627\u0631\u0641 \u0679\u06cc\u06a9\u0633\u0679 \u0641\u06cc\u0644\u0688 \u067e\u0631 \u0641\u0648\u06a9\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u062e\u0631\u0627\u0628\u06cc \u06a9\u0627 \u067e\u06cc\u063a\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/li>\n<\/ul>\n<h3 id=\"heading-how-to-manage-progress-indicators-and-asynchronous-loading\">\u062a\u0631\u0642\u06cc \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u0627\u0648\u0631 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0644\u0648\u0688\u0646\u06af \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0644\u0648\u0688\u0646\u06af \u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0628\u062a\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u0627\u0645 \u063a\u06cc\u0631 \u0645\u062a\u0639\u06cc\u0646 \u06c1\u06d2 (\u0646\u0627\u0645\u0639\u0644\u0648\u0645 \u0645\u062f\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u06af\u06d2 \u0628\u0691\u06be \u0631\u06c1\u0627 \u06c1\u06d2) \u06cc\u0627 \u062a\u0635\u062f\u06cc\u0642 \u0634\u062f\u06c1 (100% \u06a9\u06cc \u0637\u0631\u0641 \u0628\u0691\u06be \u0631\u06c1\u0627 \u06c1\u06d2)\u06d4<\/p>\n<pre><code class=\"language-kotlin\">\/\/ Indeterminate Progress (such as initial network fetch)\nCircularProgressIndicator(\n    modifier = Modifier.semantics {\n        contentDescription = \"Syncing messages, please wait\"\n    }\n)\n\n\/\/ Determinate Progress (such as file download)\nval downloadProgress = 0.65f \/\/ 65%\n\nLinearProgressIndicator(\n    progress = { downloadProgress },\n    modifier = Modifier.semantics {\n        progressBarRangeInfo = ProgressBarRangeInfo(\n            current = downloadProgress,\n            range = 0f..1f\n        )\n        contentDescription = \"Downloading update: ${(downloadProgress * 100).toInt()}% completed\"\n    }\n)\n<\/code><\/pre>\n<p>\u0679\u06be\u0648\u0633 \u062a\u0631\u0642\u06cc \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c <code>ProgressBarRangeInfo<\/code> \u06a9\u0645 \u0627\u0632 \u06a9\u0645\u060c \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1\u060c \u0627\u0648\u0631 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u0642\u062f\u0627\u0631 \u06a9\u06cc \u0645\u0639\u0627\u0648\u0646 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u0633\u06d2 \u0622\u06af\u0627\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 TalkBack \u0627\u0633 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u06cc \u062a\u0631\u062c\u0645\u0627\u0646\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u067e \u06a9\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0648\u0642\u062a\u0627\u064b \u0641\u0648\u0642\u062a\u0627\u064b \u0642\u0627\u0628\u0644 \u0633\u0645\u0627\u0639\u062a \u0627\u0648\u0631 \u0679\u0686\u0627\u0626\u0644 \u0627\u067e \u0688\u06cc\u0679\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-handle-expandable-and-collapsible-content\">\u0642\u0627\u0628\u0644 \u062a\u0648\u0633\u06cc\u0639 \u0627\u0648\u0631 \u0679\u0648\u0679\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0645\u0648\u0627\u062f \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>Accordion \u0645\u06cc\u0646\u0648 \u0627\u0648\u0631 \u062a\u0648\u0633\u06cc\u0639\u06cc FAQ \u06a9\u0627\u0631\u0688\u0632 \u06a9\u0648 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0628\u062a\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0648\u06c1 \u06a9\u06be\u0644\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0628\u0646\u062f \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0679\u06cc\u067e \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0648\u06c1 \u06a9\u06cc\u0627 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-kotlin\">var isExpanded by remember { mutableStateOf(false) }\n\nColumn(modifier = Modifier.fillMaxWidth()) {\n    Row(\n        verticalAlignment = Alignment.CenterVertically,\n        modifier = Modifier\n            .fillMaxWidth()\n            .clickable(\n                onClickLabel = if (isExpanded) \"Collapse section\" else \"Expand section\"\n            ) {\n                isExpanded = !isExpanded\n            }\n            .semantics {\n                stateDescription = if (isExpanded) \"Expanded\" else \"Collapsed\"\n            }\n            .padding(16.dp)\n    ) {\n        Text(\n            text = \"Frequently Asked Questions\",\n            style = MaterialTheme.typography.titleMedium,\n            modifier = Modifier.weight(1f)\n        )\n        Icon(\n            imageVector = if (isExpanded) Icons.Default.ExpandLess else Icons.Default.ExpandMore,\n            contentDescription = null \/\/ Decorative: parent Row communicates full state\n        )\n    }\n\n    AnimatedVisibility(visible = isExpanded) {\n        Text(\n            text = \"Our refund policy allows returns within 30 days of purchase...\",\n            modifier = Modifier.padding(16.dp)\n        )\n    }\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>stateDescription<\/code> \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0633\u06cc\u06a9\u0634\u0646 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u06a9\u06be\u0644\u0627 \u06c1\u06d2 \u06cc\u0627 \u0628\u0646\u062f \u06c1\u06d2 (\"\u062a\u0648\u0633\u06cc\u0639 \u0634\u062f\u06c1\" \u06cc\u0627 \"\u0645\u0646\u062a\u0634\u0631\")\u06d4 \u0627\u06cc\u06a9 \u06c1\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba\u060c <code>onClickLabel<\/code> \u0645\u0637\u0644\u0648\u0628\u06c1 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0648 \u0648\u0627\u0636\u062d \u06a9\u0631\u06cc\u06ba (\"\u0633\u06cc\u06a9\u0634\u0646 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u06cc\u06ba\" \u06cc\u0627 \"\u0633\u06cc\u06a9\u0634\u0646 \u06a9\u0648 \u0628\u0691\u06be\u0627 \u062f\u06cc\u06ba\")\u06d4 \u0622\u0626\u06cc\u06a9\u0646 \u0645\u06cc\u06ba <code>contentDescription = null<\/code> \u0688\u067e\u0644\u06cc\u06a9\u06cc\u0679 \u0646\u0648\u0679\u0633 \u0633\u06d2 \u0628\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-enhance-lazy-lists-and-large-collections\">\u0633\u0633\u062a \u0641\u06c1\u0631\u0633\u062a\u0648\u06ba \u0627\u0648\u0631 \u0628\u0691\u06d2 \u0645\u062c\u0645\u0648\u0639\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u062c\u0628 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0644\u0645\u0628\u06cc \u0641\u06cc\u0688\u0632 \u06cc\u0627 \u0641\u06c1\u0631\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u0646\u06c1\u06cc\u06ba \u0627\u0633 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0648\u06c1 \u06a9\u06c1\u0627\u06ba \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06d2 \u067e\u0627\u0633 \u06a9\u062a\u0646\u06d2 \u0622\u0626\u0679\u0645\u0632 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-kotlin\">val messages = remember { listOf(\"Order Shipped\", \"Delivery Delayed\", \"Payment Received\") }\n\nLazyColumn(\n    modifier = Modifier.semantics {\n        contentDescription = \"Notifications list, ${messages.size} total alerts\"\n    }\n) {\n    itemsIndexed(messages) { index, messageText ->\n        Card(\n            modifier = Modifier\n                .fillMaxWidth()\n                .padding(vertical = 4.dp)\n                .semantics {\n                    contentDescription = \"Notification ${index + 1} of ${messages.size}: $messageText\"\n                }\n        ) {\n            Text(\n                text = messageText,\n                modifier = Modifier.padding(16.dp)\n            )\n        }\n    }\n}\n<\/code><\/pre>\n<p>TalkBack \u0627\u06cc\u06a9 \u0644\u0648\u06a9\u06cc\u0634\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u062c\u0627\u0631\u06cc \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2 (\"3 \u0645\u06cc\u06ba \u0633\u06d2 1 \u0646\u0648\u0679\u06cc\u0641\u06a9\u06cc\u0634\u0646: \u0622\u0631\u0688\u0631 \u0628\u06be\u06cc\u062c \u062f\u06cc\u0627 \u06af\u06cc\u0627\") \u062a\u0627\u06a9\u06c1 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u067e\u0646\u0627 \u0645\u0642\u0627\u0645 \u06a9\u06be\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0641\u06c1\u0631\u0633\u062a \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u0645\u0644\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-test-and-debug-accessibility\">\u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062c\u0627\u0646\u0686 \u0627\u0648\u0631 \u0688\u06cc\u0628\u06af \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<p>\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u062b\u06cc\u0631 \u067e\u0631\u062a\u0648\u06ba \u0648\u0627\u0644\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0679\u06cc\u0633\u0679\u0646\u06af\u060c \u0622\u0646 \u0688\u06cc\u0648\u0627\u0626\u0633 \u062a\u0634\u062e\u06cc\u0635\u06cc \u0679\u0648\u0644\u0632\u060c \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u0686\u06cc\u06a9\u0646\u06af\u060c \u0627\u0648\u0631 TalkBack \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062f\u0633\u062a\u06cc \u062a\u0635\u062f\u06cc\u0642\u06d4<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0679\u06cc\u0633\u0679 \u06a9\u06cc \u0633\u0637\u062d<\/th>\n<th>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u0648\u0632\u0627\u0631<\/th>\n<th>\u062c\u0648 \u0627\u0633 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/th>\n<th>\u06a9\u0628 \u062f\u0648\u0691\u0646\u0627 \u06c1\u06d2\u06d4<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u062f\u0633\u062a\u06cc \u062a\u0635\u062f\u06cc\u0642<\/strong><\/td>\n<td>\u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631<\/td>\n<td>\u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u0627 \u063a\u06cc\u0631 \u0628\u0635\u0631\u06cc \u0635\u0627\u0631\u0641 \u06a9\u0627 \u062a\u062c\u0631\u0628\u06c1 \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06c1 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646<\/td>\n<td>\u0627\u06c1\u0645 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u062c\u0627\u0631\u06cc \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2<\/td>\n<\/tr>\n<tr>\n<td><strong>\u0628\u0635\u0631\u06cc \u062a\u0639\u0631\u06cc\u0641<\/strong><\/td>\n<td>\u06af\u0648\u06af\u0644 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0627\u0633\u06a9\u06cc\u0646\u0631<\/td>\n<td>\u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u0627\u0648\u0631 \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u06a9\u06cc \u062e\u0644\u0627\u0641 \u0648\u0631\u0632\u06cc\u0627\u06ba<\/td>\n<td>\u0641\u0646\u06a9\u0634\u0646\u0644 QA \u0679\u06cc\u0633\u0679\u0646\u06af \u062c\u0627\u0631\u06cc \u06c1\u06d2\u06d4<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062f\u0631\u062e\u062a \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1<\/strong><\/td>\n<td>\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631<\/td>\n<td>\u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u06a9\u0627 \u0627\u0646\u0636\u0645\u0627\u0645 \u0627\u0648\u0631 \u0646\u0648\u0688 \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a<\/td>\n<td>\u0641\u0639\u0627\u0644 \u062a\u0631\u0642\u06cc \u0645\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td><strong>\u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u0639\u0627\u0626\u0646\u06c1<\/strong><\/td>\n<td>UI \u0679\u06cc\u0633\u0679 \u0644\u06a9\u06be\u06cc\u06ba (<code>ui-test-junit4<\/code>)<\/td>\n<td>\u0631\u0627\u0628\u0637\u06d2 \u06a9\u06d2 \u0627\u06c1\u062f\u0627\u0641 \u0627\u0648\u0631 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u067e\u0631 \u0631\u062c\u0639\u062a<\/td>\n<td>\u0645\u0633\u0644\u0633\u0644 \u0627\u0646\u0636\u0645\u0627\u0645 (CI)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"heading-how-to-test-manually-with-talkback\">\u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0679\u06cc\u0633\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<p>TalkBack \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0645\u062a\u0628\u0627\u062f\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-how-to-enable-and-use-talkback\">TalkBack \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0641\u0639\u0627\u0644 \u0627\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<ol>\n<li>\n<p>\u0627\u067e\u0646\u0627 \u0622\u0644\u06c1 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4 <strong>\u062a\u0631\u062a\u06cc\u0628<\/strong> \u0627\u06cc\u067e \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba: <strong>\u0631\u0633\u0627\u0626\u06cc<\/strong> \u067e\u06be\u0631 <strong>\u0679\u0627\u06a9 \u0628\u06cc\u06a9<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0633\u0648\u0626\u0686 \u06a9\u0648 \u0627\u0633 \u067e\u0631 \u067e\u0644\u0679\u0627\u0626\u06cc\u06ba: <strong>\u06a9\u0648<\/strong> \u0633\u0633\u0679\u0645 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a\u06cc\u06ba \u0642\u0628\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 (\u0627\u06af\u0631 \u0641\u0639\u0627\u0644 \u06c1\u0648 \u062a\u0648\u060c \u0622\u067e \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u0644\u06cc\u062f \u06a9\u06d2 \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633 \u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 TalkBack \u06a9\u0648 \u0679\u0648\u06af\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u062f\u0648\u0646\u0648\u06ba \u0648\u0627\u0644\u06cc\u0648\u0645 \u06a9\u06cc\u0632 \u06a9\u0648 \u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0628\u0627\u0626\u06cc\u06ba)<\/p>\n<\/li>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc TalkBack \u0633\u0644\u0648\u06a9:<\/p>\n<ul>\n<li>\n<p><strong>\u062f\u0627\u0626\u06cc\u06ba \u0633\u0648\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba:<\/strong> \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0641\u0648\u06a9\u0633 \u06a9\u0648 \u0627\u06af\u0644\u06d2 \u0639\u0646\u0635\u0631 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0628\u0627\u0626\u06cc\u06ba \u0633\u0648\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba:<\/strong> \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0641\u0648\u06a9\u0633 \u06a9\u0648 \u067e\u0686\u06be\u0644\u06d2 \u0639\u0646\u0635\u0631 \u06a9\u06cc \u0637\u0631\u0641 \u0644\u06d2 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062f\u0648 \u0628\u0627\u0631 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba:<\/strong> \u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0648\u06a9\u0633 \u06a9\u0631\u062f\u06c1 \u0639\u0646\u0635\u0631 \u06a9\u0648 \u0686\u0627\u0644\u0648 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062f\u0648 \u0627\u0646\u06af\u0644\u06cc\u0648\u06ba \u0633\u06d2 \u0633\u0648\u0627\u0626\u067e:<\/strong> \u0641\u06c1\u0631\u0633\u062a \u06cc\u0627 \u0635\u0641\u062d\u06c1 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0633\u06a9\u0631\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u06cc\u0646 \u0627\u0646\u06af\u0644\u06cc\u0648\u06ba \u0633\u06d2 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba (\u06cc\u0627 \u0646\u06cc\u0686\u06d2 \u0633\u0648\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u06cc\u06a9 \u062d\u0631\u06a9\u062a \u0645\u06cc\u06ba \u062f\u0627\u0626\u06cc\u06ba):<\/strong> TalkBack \u0645\u06cc\u0646\u0648 \u06a9\u06be\u0648\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>TalkBack \u067e\u0631\u06cc\u06a9\u0679\u0633 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u06a9\u06cc\u0627 \u0622\u067e \u0622\u0646\u06a9\u06be\u06cc\u06ba \u0628\u0646\u062f \u06a9\u0631 \u06a9\u06d2 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u06c1\u0645 \u0633\u0641\u0631 (\u062c\u06cc\u0633\u06d2 \u0631\u062c\u0633\u0679\u0631\u06cc\u0634\u0646\u060c \u0644\u0627\u06af \u0627\u0646\u060c \u062a\u0644\u0627\u0634\u060c \u0686\u06cc\u06a9 \u0622\u0624\u0679) \u0645\u06a9\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u061f<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06cc\u0627 \u062a\u0645\u0627\u0645 \u0628\u0679\u0646 \u0627\u0648\u0631 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644\u0632 \u067e\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u0646\u0627\u0645\u0648\u06ba \u06a9\u0627 \u0644\u06cc\u0628\u0644 \u0644\u06af\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06cc\u0627 \u062a\u0648\u062c\u06c1 \u0627\u06cc\u06a9 \u0645\u0646\u0637\u0642\u06cc \u0627\u0648\u0631 \u0645\u062a\u0648\u0642\u0639 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06cc \u0637\u0631\u0641 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06cc\u0627 \u063a\u0644\u0637\u06cc \u06a9\u06d2 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u0627\u0648\u0631 \u0645\u062a\u062d\u0631\u06a9 \u062d\u0627\u0644\u062a \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0645\u0637\u0644\u0639 \u06c1\u0648\u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u061f<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-how-to-write-automated-compose-accessibility-tests\">\u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u062d\u0631\u06cc\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u06a9\u06cc\u0633\u06d2 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/h3>\n<p>\u0622\u067e \u06a9\u06d2 \u0645\u0633\u0644\u0633\u0644 \u0627\u0646\u0636\u0645\u0627\u0645 (CI) \u0633\u0631\u0648\u0631 \u0645\u06cc\u06ba \u06af\u0645 \u0634\u062f\u06c1 \u062a\u0641\u0635\u06cc\u0644 \u0627\u0648\u0631 \u06a9\u0645 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0679\u0686 \u0627\u06c1\u062f\u0627\u0641 \u06a9\u0648 \u067e\u06a9\u0691\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 JUnit \u0627\u0646\u0633\u0679\u0631\u0648\u0645\u06cc\u0646\u0679\u06cc\u0634\u0646 \u0679\u06cc\u0633\u0679\u0648\u06ba \u0645\u06cc\u06ba \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u062f\u0639\u0648\u0648\u06ba \u06a9\u0648 \u0636\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-add-dependencies-to-buildgradlekts\">\u0627\u0646\u062d\u0635\u0627\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>build.gradle.kts<\/code>:<\/h4>\n<pre><code class=\"language-kotlin\">androidTestImplementation(\"androidx.compose.ui:ui-test-junit4\")\nandroidTestImplementation(\"androidx.compose.ui:ui-test-manifest\")\n<\/code><\/pre>\n<h4 id=\"heading-writing-compose-accessibility-tests\">\u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0679\u06cc\u0633\u0679 \u0644\u06a9\u06be\u06cc\u06ba:<\/h4>\n<pre><code class=\"language-kotlin\">@RunWith(AndroidJUnit4::class)\nclass AccessibilityTest {\n\n    @get:Rule\n    val composeTestRule = createAndroidComposeRule<componentactivity>()\n\n    @Test\n    fun testLoginButton_hasProperTouchTargetAndLabel() {\n        composeTestRule.setContent {\n            MaterialTheme {\n                Button(\n                    onClick = { \/* Submit login *\/ },\n                    modifier = Modifier.minimumInteractiveComponentSize()\n                ) {\n                    Text(\"Sign In\")\n                }\n            }\n        }\n\n        \/\/ Verify the node exists with correct text and semantics\n        composeTestRule\n            .onNodeWithText(\"Sign In\")\n            .assertExists()\n            .assertHasClickAction()\n            .assertHeightIsAtLeast(48.dp)\n            .assertWidthIsAtLeast(48.dp)\n    }\n\n    @Test\n    fun testIconButton_containsContentDescription() {\n        composeTestRule.setContent {\n            MaterialTheme {\n                IconButton(onClick = {}) {\n                    Icon(\n                        imageVector = Icons.Default.Favorite,\n                        contentDescription = \"Add to favorites\"\n                    )\n                }\n            }\n        }\n\n        \/\/ Verify content description is accurately exposed in semantics tree\n        composeTestRule\n            .onNode(hasContentDescription(\"Add to favorites\"))\n            .assertExists()\n            .assertHasClickAction()\n    }\n}\n<\/componentactivity><\/code><\/pre>\n<h3 id=\"heading-step-by-step-guide-to-google-accessibility-scanner\">Google Accessibility Checker \u0645\u0631\u062d\u0644\u06c1 \u0648\u0627\u0631 \u06af\u0627\u0626\u06cc\u0688<\/h3>\n<p><strong>\u06af\u0648\u06af\u0644 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0627\u0633\u06a9\u06cc\u0646\u0631<\/strong> \u0627\u06cc\u06a9 Android \u062a\u0634\u062e\u06cc\u0635\u06cc \u0679\u0648\u0644 \u062c\u0648 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e \u06a9\u06d2 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 UI \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u06a9\u06cc \u062e\u0644\u0627\u0641 \u0648\u0631\u0632\u06cc\u0648\u06ba \u06a9\u0648 \u062c\u06be\u0646\u0688\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h4 id=\"heading-how-to-install-and-set-up-accessibility-scanner\">\u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0686\u06cc\u06a9\u0631 \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u0627\u0648\u0631 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h4>\n<ol>\n<li>\n<p><strong>\u06af\u0648\u06af\u0644 \u067e\u0644\u06d2 \u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba:<\/strong> \u0627\u067e\u0646\u06d2 \u0679\u06cc\u0633\u0679 \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u06af\u0648\u06af\u0644 \u067e\u0644\u06d2 \u0627\u0633\u0679\u0648\u0631 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <strong>\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0633\u06a9\u06cc\u0646\u0631<\/strong> (Google LLC \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u0634\u0627\u0626\u0639 \u06a9\u0631\u062f\u06c1)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0645\u06cc\u06ba \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u06cc\u0631\u062a\u06d2 \u0628\u0679\u0646 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba:<\/strong> \u0686\u06cc\u06a9 \u0645\u0627\u0631\u06a9 \u0622\u0626\u06cc\u06a9\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0644\u06cc\u0648 \u0641\u0644\u0648\u0679\u0646\u06af \u0627\u06cc\u06a9\u0634\u0646 \u0628\u0679\u0646 <code>(\u2713)<\/code> \u06cc\u06c1 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u0627\u06cc\u06a9 \u0627\u0648\u0648\u0631\u0644\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<h4 id=\"heading-running-a-scan-and-interpreting-results\">\u0627\u0633\u06a9\u06cc\u0646 \u0686\u0644\u0627\u0646\u0627 \u0627\u0648\u0631 \u0646\u062a\u0627\u0626\u062c \u06a9\u06cc \u062a\u0631\u062c\u0645\u0627\u0646\u06cc \u06a9\u0631\u0646\u0627<\/h4>\n<p>\u0627\u067e\u0646\u06cc \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u062c\u0633 \u06a9\u0627 \u0622\u067e \u0622\u0688\u0679 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u06cc\u0631\u062a\u06d2 \u0646\u06cc\u0644\u06d2 \u06a9\u0648 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4 <strong>\u0633\u06a9\u06cc\u0646\u0631 \u0628\u0679\u0646<\/strong>.<\/p>\n<p>\u067e\u06be\u0631 <strong>\u0633\u0646\u06cc\u067e \u0634\u0627\u0679<\/strong> \u062c\u0627\u0645\u062f \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u0627 \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 (\u06a9\u06cc\u0645\u0631\u06c1) \u0622\u0626\u06cc\u06a9\u0646 \u06a9\u0648 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4 <strong>\u0631\u06cc\u06a9\u0627\u0631\u0688<\/strong> \u0645\u062a\u0639\u062f\u062f \u0642\u062f\u0645\u06cc \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0628\u06c1\u0627\u0624 \u06a9\u0627 \u0622\u0688\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u06a9\u06cc\u0646\u0631 \u06c1\u0631 \u062c\u06be\u0646\u0688\u06d2 \u0648\u0627\u0644\u06d2 UI \u062c\u0632\u0648 \u06a9\u0627 \u067e\u062a\u06c1 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <strong>\u0627\u0648\u0631\u0646\u062c \u0645\u0633\u062a\u0637\u06cc\u0644<\/strong>. \u0639\u0627\u0645 \u0646\u062a\u0627\u0626\u062c \u0645\u06cc\u06ba 48dp \u0633\u06d2 \u0686\u06be\u0648\u0679\u06d2 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0679\u0686 \u0627\u06c1\u062f\u0627\u0641\u060c \u0628\u0679\u0646\u0648\u06ba \u0627\u0648\u0631 \u062a\u0635\u0627\u0648\u06cc\u0631 \u067e\u0631 \u0644\u06cc\u0628\u0644 \u063a\u0627\u0626\u0628\u060c \u0645\u062a\u0646 \u06cc\u0627 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u06d2 \u0628\u0631\u0639\u06a9\u0633 \u06a9\u06cc \u06a9\u0645\u06cc\u060c \u0627\u0648\u0631 \u0628\u06d2 \u06a9\u0627\u0631 \u06cc\u0627 \u0628\u06d2 \u06a9\u0627\u0631 \u0648\u0636\u0627\u062d\u062a\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0633\u0626\u0644\u06c1 \u06a9\u0648 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u062a\u0641\u0635\u06cc\u0644\u06cc \u062a\u062c\u0632\u06cc\u06c1\u060c \u0645\u062a\u0639\u0644\u0642\u06c1 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0631\u06c1\u0646\u0645\u0627 \u062e\u0637\u0648\u0637 \u06a9\u06d2 \u0644\u0646\u06a9\u0633\u060c \u0627\u0648\u0631 \u062a\u062f\u0627\u0631\u06a9 \u06a9\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u0645\u0627\u06cc\u0627\u06ba \u06a9\u0631\u062f\u06c1 \u0646\u062a\u06cc\u062c\u06c1 \u06a9\u0648 \u062a\u06be\u067e\u062a\u06be\u067e\u0627\u0626\u06cc\u06ba\u06d4 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0630\u06c1\u0646 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba \u06a9\u06c1 \u0633\u06a9\u06cc\u0646\u0631 \u0627\u06cc\u06a9 \u062a\u0634\u062e\u06cc\u0635\u06cc \u0622\u0644\u06c1 \u06c1\u06d2\u06d4 \u06a9\u0644\u06cc\u0646 \u0627\u0633\u06a9\u06cc\u0646 \u0627\u06cc\u067e\u0633 \u062a\u06a9 \u0645\u06a9\u0645\u0644 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0636\u0645\u0627\u0646\u062a \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u062a\u0627\u06d4<\/p>\n<p><em>\u062a\u0635\u0648\u06cc\u0631: Google Accessibility Scanner AccessibilityDemo \u0627\u06cc\u067e \u06a9\u0627 \u0622\u0688\u0679 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u0686\u06be\u0648\u0679\u06d2 24dp \u0679\u0686 \u0627\u06c1\u062f\u0627\u0641 \u06a9\u0648 \u0646\u0634\u0627\u0646 \u0632\u062f \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062a\u062f\u0627\u0631\u06a9 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u0627\u062a \u062f\u06a9\u06be\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/em><\/p>\n<h3 id=\"heading-how-to-inspect-semantics-with-android-studio-layout-inspector\">\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u0645\u06cc\u06ba <strong>\u0644\u06d2 \u0622\u0624\u0679 \u0686\u06cc\u06a9\u0631<\/strong> \u0622\u067e \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0645\u06cc\u06ba \u0686\u0644\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u06d2 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0622\u067e\u0631\u06cc\u0679\u0646\u06af \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u0633\u0627\u0645\u0646\u06d2 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0639\u06cc\u0646 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0679\u0631\u06cc \u06a9\u0648 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h4 id=\"heading-how-to-inspect-semantics-step-by-step\">\u0645\u0631\u062d\u0644\u06c1 \u0648\u0627\u0631 \u0627\u0644\u0641\u0627\u0638 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h4>\n<ol>\n<li>\n<p>\u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648 USB \u0688\u06cc\u0628\u06af\u0646\u06af \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u0627\u06cc\u0645\u0648\u0644\u06cc\u0679\u0631 \u06cc\u0627 \u0641\u0632\u06cc\u06a9\u0644 \u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u0645\u06cc\u06ba\u060c \u06a9\u06be\u0648\u0644\u06cc\u06ba: <strong>\u062f\u06cc\u06a9\u06be\u06cc\u06ba<\/strong> \u067e\u06be\u0631 <strong>\u0679\u0648\u0644 \u0648\u0646\u0688\u0648<\/strong> \u067e\u06be\u0631 <strong>\u0644\u06d2 \u0622\u0624\u0679 \u0686\u06cc\u06a9\u0631<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u067e\u0631\u0648\u0633\u06cc\u0633 \u0633\u0644\u06cc\u06a9\u0679\u0631 \u0688\u0631\u0627\u067e \u0688\u0627\u0624\u0646 \u0645\u06cc\u06ba\u060c \u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u0639\u0645\u0644 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u060c \u062c\u06cc\u0633\u06d2 <code>com.example.accessibilitydemo<\/code>)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0628\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u062c\u0632\u0648 \u062f\u0631\u062e\u062a \u06a9\u06d2 \u067e\u06cc\u0646\u0644 \u0645\u06cc\u06ba\u060c \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u062c\u0633 \u06a9\u0627 \u0622\u067e \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u06cc\u0633\u06d2 <code>Card<\/code> \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0627\u0646\u0636\u0645\u0627\u0645 \u0645\u06cc\u06ba)\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062f\u06cc\u06a9\u06be\u0648 <strong>\u0648\u0635\u0641<\/strong> \u062f\u0627\u0626\u06cc\u06ba \u067e\u06cc\u0646\u0644\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062e\u0635\u0648\u0635 \u062d\u0635\u06d2 \u0646\u0638\u0631 \u0622\u0626\u06cc\u06ba \u06af\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u0636\u0645 \u0634\u062f\u06c1 \u0645\u0639\u0646\u06cc:<\/strong> \u062f\u0631\u062c \u0630\u06cc\u0644 \u0635\u0648\u0631\u062a\u0648\u06ba \u0645\u06cc\u06ba \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u062e\u062f\u0645\u0627\u062a \u06a9\u06d2 \u0633\u0627\u0645\u0646\u06d2 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0645 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2: <code>mergeDescendants = true<\/code> \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 (\u0627\u0646\u0636\u0645\u0627\u0645 \u0633\u0645\u06cc\u062a) <code>ContentDescription<\/code>, <code>Text<\/code> \u062c\u06be\u06a9\u0627\u0624 <code>OnClick<\/code> \u0679\u0627\u0633\u06a9 \u0627\u0648\u0631 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06a9\u06d2 \u062c\u06be\u0646\u0688\u06d2)\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0639\u0644\u0627\u0646 \u0634\u062f\u06c1 \u0645\u0639\u0646\u06cc:<\/strong> \u06a9\u0633\u06cc \u0645\u062e\u0635\u0648\u0635 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u0627\u06cc\u0628\u0644 \u0646\u0648\u0688 \u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0645\u0646\u0633\u0644\u06a9 \u0648\u0627\u0636\u062d \u0633\u06cc\u0645\u0646\u0679\u06a9 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u0648 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/\u062c\u06cc\u0679-\u067e\u06cc\u06a9-\u06a9\u0645\u067e\u0648\u0632-\u06a9\u06d2-\u0633\u0627\u062a\u06be-\u0642\u0627\u0628\u0644-\u0631\u0633\u0627\u0626\u06cc-\u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688-\u0627\u06cc\u067e\u0633-\u06a9\u06cc\u0633\u06d2.png\" alt=\"c9d918df-794b-41ff-9771-3ec4b772a5f8\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p><em>\u062a\u0635\u0648\u06cc\u0631: AccessibilityDemo \u0627\u06cc\u067e \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u0628\u0627\u0626\u06cc\u06ba \u062c\u0627\u0646\u0628 \u0627\u06cc\u06a9 \u062c\u0632\u0648 \u06a9\u0627 \u062f\u0631\u062e\u062a\u060c \u0628\u06cc\u0686 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0628\u0635\u0631\u06cc \u0648\u0627\u0626\u0631 \u0641\u0631\u06cc\u0645\u060c \u0627\u0648\u0631 \u062f\u0627\u0626\u06cc\u06ba \u062c\u0627\u0646\u0628 \u0636\u0645 \u0634\u062f\u06c1 \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u067e\u0631\u0627\u067e\u0631\u0679\u06cc\u0632 \u067e\u06cc\u0646\u0644 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/em><\/p>\n<p>\u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0622\u067e \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0628\u0635\u0631\u06cc \u062a\u0635\u062f\u06cc\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><code>semantics(mergeDescendants = true)<\/code>    \u0645\u062e\u062a\u0644\u0641 \u0628\u0686\u0648\u06ba \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc \u0646\u0648\u0688 \u0645\u06cc\u06ba \u0645\u0646\u0627\u0633\u0628 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06af\u0631\u0648\u067e \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u0631\u0627\u0626\u0634\u06cc \u0622\u0626\u06cc\u06a9\u0646 \u06a9\u0648 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u062f\u0631\u062e\u062a \u0633\u06d2 \u062e\u0627\u0631\u062c \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u06a9\u0634\u0646 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba (<code>OnClick: AccessibilityAction<\/code>) \u0627\u0648\u0631 \u06a9\u0633\u0679\u0645 \u0627\u06cc\u06a9\u0634\u0646\u0632 \u06a9\u0645\u067e\u0648\u0632 \u0627\u06cc\u0628\u0644 \u0633\u06d2 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-real-world-accessible-ui-patterns\">\u0648\u0627\u0642\u0639\u06cc \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc UI \u067e\u06cc\u0679\u0631\u0646<\/h2>\n<p>\u0630\u06cc\u0644 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0639\u0627\u0645 UI \u067e\u06cc\u0679\u0631\u0646 \u06a9\u0627 \u0645\u06a9\u0645\u0644\u060c \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u0646\u0641\u0627\u0630 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-fully-accessible-login-form\">\u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0644\u0627\u06af \u0627\u0646 \u0641\u0627\u0631\u0645<\/h3>\n<p>\u0641\u0627\u0631\u0645 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u062f\u0627\u062e\u0644\u06cc \u0646\u0642\u0637\u06c1 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0646\u0641\u0627\u0630 \u0639\u0646\u0648\u0627\u0646 \u06a9\u06d2 \u0627\u0644\u0641\u0627\u0638\u060c \u0627\u06cc \u0645\u06cc\u0644 \u0627\u0646 \u067e\u0679 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642\u060c \u0645\u062a\u062d\u0631\u06a9 \u063a\u0644\u0637\u06cc \u06a9\u06cc \u0627\u0637\u0644\u0627\u0639\u060c \u0627\u0648\u0631 \u0645\u0646\u0627\u0633\u0628 \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u0633\u0627\u0626\u0632\u0646\u06af \u06a9\u0648 \u06cc\u06a9\u062c\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-kotlin\">@Composable\nfun AccessibleLoginForm(\n    onLoginSubmitted: (String, String) -> Unit\n) {\n    var email by remember { mutableStateOf(\"\") }\n    var password by remember { mutableStateOf(\"\") }\n    var isSubmitted by remember { mutableStateOf(false) }\n\n    val isEmailInvalid = isSubmitted && !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()\n    val isPasswordInvalid = isSubmitted && password.length < 8\n\n    Column(\n        modifier = Modifier\n            .fillMaxSize()\n            .padding(24.dp)\n    ) {\n        \/\/ 1. Designated Screen Title Heading\n        Text(\n            text = \"Welcome Back\",\n            style = MaterialTheme.typography.headlineLarge,\n            modifier = Modifier.semantics { heading() }\n        )\n\n        Text(\n            text = \"Sign in to access your account\",\n            style = MaterialTheme.typography.bodyMedium,\n            color = MaterialTheme.colorScheme.onSurfaceVariant\n        )\n\n        Spacer(modifier = Modifier.height(24.dp))\n\n        \/\/ 2. Accessible Email Input\n        OutlinedTextField(\n            value = email,\n            onValueChange = { email = it },\n            label = { Text(\"Email Address\") },\n            isError = isEmailInvalid,\n            singleLine = true,\n            keyboardOptions = KeyboardOptions(\n                keyboardType = KeyboardType.Email,\n                imeAction = ImeAction.Next\n            ),\n            supportingText = {\n                if (isEmailInvalid) {\n                    Text(\n                        text = \"Please enter a valid email address\",\n                        color = MaterialTheme.colorScheme.error\n                    )\n                }\n            },\n            modifier = Modifier\n                .fillMaxWidth()\n                .semantics {\n                    if (isEmailInvalid) {\n                        error(\"Please enter a valid email address\")\n                    }\n                }\n        )\n\n        Spacer(modifier = Modifier.height(16.dp))\n\n        \/\/ 3. Accessible Password Input\n        OutlinedTextField(\n            value = password,\n            onValueChange = { password = it },\n            label = { Text(\"Password\") },\n            isError = isPasswordInvalid,\n            singleLine = true,\n            visualTransformation = PasswordVisualTransformation(),\n            keyboardOptions = KeyboardOptions(\n                keyboardType = KeyboardType.Password,\n                imeAction = ImeAction.Done\n            ),\n            supportingText = {\n                if (isPasswordInvalid) {\n                    Text(\n                        text = \"Password must be at least 8 characters long\",\n                        color = MaterialTheme.colorScheme.error\n                    )\n                }\n            },\n            modifier = Modifier\n                .fillMaxWidth()\n                .semantics {\n                    if (isPasswordInvalid) {\n                        error(\"Password must be at least 8 characters long\")\n                    }\n                }\n        )\n\n        Spacer(modifier = Modifier.height(24.dp))\n\n        \/\/ 4. Accessible Submit Button\n        Button(\n            onClick = {\n                isSubmitted = true\n                if (!isEmailInvalid &#038;&#038; !isPasswordInvalid) {\n                    onLoginSubmitted(email, password)\n                }\n            },\n            modifier = Modifier\n                .fillMaxWidth()\n                .minimumInteractiveComponentSize()\n                .semantics {\n                    contentDescription = \"Sign in to your account\"\n                }\n        ) {\n            Text(\"Sign In\")\n        }\n    }\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06cc\u0648\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p><strong>\u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u0627 \u0639\u0646\u0648\u0627\u0646:<\/strong> \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0645\u06cc\u06ba \u062f\u0627\u062e\u0644 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \"\u0648\u06cc\u0644\u06a9\u0645 \u0628\u06cc\u06a9\" \u067e\u0631 \u062c\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u063a\u0644\u0637\u06cc \u06a9\u0627 \u0645\u0637\u0644\u0628:<\/strong> \u0627\u06af\u0631 \u062a\u0648\u062b\u06cc\u0642 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 <code>error(\"...\")<\/code> \u062c\u0628 \u0679\u06cc\u06a9\u0633\u0679 \u0641\u06cc\u0644\u0688 \u0641\u0648\u06a9\u0633 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 TalkBack \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06d2 \u062a\u0642\u0627\u0636\u0648\u06ba \u06a9\u0648 \u0628\u0648\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u06cc \u0628\u0648\u0631\u0688 \u0631\u0648\u0679\u0646\u06af:<\/strong> <code>ImeAction.Next<\/code>    \u0627\u0648\u0631 <code>ImeAction.Done<\/code> \u06a9\u06cc \u0628\u0648\u0631\u0688 \u06a9\u06cc \u0631\u06c1\u0646\u0645\u0627\u0626\u06cc \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0631\u06a9\u0627\u0648\u0679 \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0627\u0646 \u067e\u0679 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-e-commerce-product-card-with-custom-actions\">\u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc \u06a9\u0627\u0645\u0631\u0633 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u0627\u0631\u0688\u0632<\/h3>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d \u0627\u06a9\u0679\u06be\u0627 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2: <code>mergeDescendants = true<\/code> \u06a9\u06d2 \u0633\u0627\u062a\u06be <code>customActions<\/code> \u0645\u062e\u062a\u0635\u0631 \u0627\u0648\u0631 \u062c\u062f\u06cc\u062f \u0635\u0627\u0631\u0641 \u062f\u0648\u0633\u062a \u06a9\u0627\u0631\u0688 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-kotlin\">data class Product(\n    val id: String,\n    val title: String,\n    val priceFormatted: String,\n    val rating: Float,\n    val imageRes: Int\n)\n\n@Composable\nfun AccessibleProductCard(\n    product: Product,\n    onCardClick: () -> Unit,\n    onToggleFavorite: () -> Unit,\n    onAddToCart: () -> Unit\n) {\n    Card(\n        modifier = Modifier\n            .fillMaxWidth()\n            .clickable(onClickLabel = \"View product details\") { onCardClick() }\n            .semantics(mergeDescendants = true) {\n                \/\/ Group all descriptive properties into one coherent announcement\n                contentDescription = \"${product.title}, Price: ${product.priceFormatted}, Rated ${product.rating} out of 5 stars\"\n                \n                \/\/ Expose secondary operations as custom accessibility actions\n                customActions = listOf(\n                    CustomAccessibilityAction(\"Add to shopping cart\") {\n                        onAddToCart()\n                        true\n                    },\n                    CustomAccessibilityAction(\"Save to favorites\") {\n                        onToggleFavorite()\n                        true\n                    }\n                )\n            }\n    ) {\n        Row(\n            modifier = Modifier.padding(16.dp),\n            verticalAlignment = Alignment.CenterVertically\n        ) {\n            Image(\n                painter = painterResource(product.imageRes),\n                contentDescription = null, \/\/ Decorative: covered by merged description\n                modifier = Modifier\n                    .size(80.dp)\n                    .clip(RoundedCornerShape(8.dp))\n            )\n\n            Spacer(modifier = Modifier.width(16.dp))\n\n            Column(modifier = Modifier.weight(1f)) {\n                Text(\n                    text = product.title,\n                    style = MaterialTheme.typography.titleMedium\n                )\n                Text(\n                    text = product.priceFormatted,\n                    style = MaterialTheme.typography.bodyLarge,\n                    fontWeight = FontWeight.Bold\n                )\n                Text(\n                    text = \"\u2605 ${product.rating}\",\n                    style = MaterialTheme.typography.bodySmall,\n                    color = MaterialTheme.colorScheme.onSurfaceVariant\n                )\n            }\n        }\n    }\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06cc\u0648\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p><strong>\u0633\u0646\u06af\u0644 \u0627\u0633\u0679\u0627\u067e \u06a9\u0627 \u0645\u0637\u0644\u0628:<\/strong> \u0639\u0644\u06cc\u062d\u062f\u06c1 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0648\u0631 \u0679\u06cc\u06a9\u0633\u0679 \u0648\u06cc\u0648\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0686\u0627\u0631 \u0628\u0627\u0631 \u0633\u0648\u0627\u0626\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c TalkBack \u067e\u0648\u0631\u06d2 \u06a9\u0627\u0631\u0688 \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u062a\u062d\u062f \u0628\u06cc\u0627\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u06cc\u06a9\u0634\u0646 \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633:<\/strong> \u0635\u0627\u0631\u0641\u06cc\u0646 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06a9\u06d2 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u062c\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0679\u0627\u06a9 \u0628\u06cc\u06a9 \u0627\u06cc\u06a9\u0634\u0646 \u0645\u06cc\u0646\u0648 \u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u067e\u0646\u06d2 \u06a9\u0627\u0631\u0679 \u06cc\u0627 \u067e\u0633\u0646\u062f\u06cc\u062f\u06c1 \u0645\u06cc\u06ba \u0622\u0626\u0679\u0645\u0632 \u0634\u0627\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-tab-navigation-with-selection-state\">\u0633\u0644\u06cc\u06a9\u0634\u0646 \u0633\u0679\u06cc\u0679\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0679\u06cc\u0628 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646<\/h3>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u0679\u06cc\u0628 \u0628\u0627\u0631 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u06a9\u0648 \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>stateDescription<\/code> \u0627\u0648\u0631 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0679\u06cc\u0628 \u06a9\u06d2 \u0627\u0639\u0644\u0627\u0646\u0627\u062a:<\/p>\n<pre><code class=\"language-kotlin\">@Composable\nfun AccessibleTabNavigation(\n    tabs: List<string>,\n    selectedTabIndex: Int,\n    onTabSelected: (Int) -> Unit\n) {\n    TabRow(\n        selectedTabIndex = selectedTabIndex,\n        modifier = Modifier.semantics {\n            contentDescription = \"Navigation tabs, ${tabs[selectedTabIndex]} selected\"\n        }\n    ) {\n        tabs.forEachIndexed { index, title ->\n            val isSelected = selectedTabIndex == index\n            Tab(\n                selected = isSelected,\n                onClick = { onTabSelected(index) },\n                modifier = Modifier.semantics {\n                    role = Role.Tab\n                    stateDescription = if (isSelected) \"Selected\" else \"Not selected\"\n                    contentDescription = \"$title tab\"\n                }\n            ) {\n                Text(\n                    text = title,\n                    modifier = Modifier.padding(vertical = 16.dp)\n                )\n            }\n        }\n    }\n}\n<\/string><\/code><\/pre>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06cc\u0648\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p><strong>\u0648\u0627\u0636\u062d \u06a9\u0631\u062f\u0627\u0631:<\/strong> \u06c1\u0631 \u0622\u0626\u0679\u0645 \u06a9\u0648 \u0646\u0634\u0627\u0646 \u0632\u062f \u06a9\u0631\u06cc\u06ba\u06d4 <code>Role.Tab<\/code> \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0633\u0631\u0648\u0633 \u06a9\u0648 \u0645\u0637\u0644\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0679\u06cc\u0628 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u062a\u0627\u062b\u0631\u0627\u062a:<\/strong> \u06a9\u06c1 <code>stateDescription<\/code> \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0679\u06cc\u067e \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u06c1 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0679\u06cc\u0628 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u0641\u0639\u0627\u0644 \u06c1\u06d2 \u06cc\u0627 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-confirmation-dialog-with-action-descriptions\">\u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0635\u062f\u06cc\u0642\u06cc \u0688\u0627\u0626\u06cc\u0644\u0627\u06af<\/h3>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u062a\u0635\u062f\u06cc\u0642\u06cc \u0688\u0627\u0626\u06cc\u0644\u0627\u06af \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-kotlin\">@Composable\nfun AccessibleDeleteConfirmationDialog(\n    itemName: String,\n    onDismissRequest: () -> Unit,\n    onConfirmDelete: () -> Unit\n) {\n    AlertDialog(\n        onDismissRequest = onDismissRequest,\n        title = {\n            Text(\n                text = \"Delete Item?\",\n                style = MaterialTheme.typography.headlineSmall,\n                modifier = Modifier.semantics { heading() }\n            )\n        },\n        text = {\n            Text(\"Are you sure you want to permanently delete \"$itemName\"? This action cannot be undone.\")\n        },\n        confirmButton = {\n            TextButton(\n                onClick = onConfirmDelete,\n                modifier = Modifier.semantics {\n                    contentDescription = \"Confirm deletion of $itemName\"\n                }\n            ) {\n                Text(\"Delete\", color = MaterialTheme.colorScheme.error)\n            }\n        },\n        dismissButton = {\n            TextButton(\n                onClick = onDismissRequest,\n                modifier = Modifier.semantics {\n                    contentDescription = \"Cancel deletion and close dialog\"\n                }\n            ) {\n                Text(\"Cancel\")\n            }\n        },\n        modifier = Modifier.semantics {\n            contentDescription = \"Delete item confirmation dialog\"\n        }\n    )\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06cc\u0648\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p><strong>\u0648\u0627\u0636\u062d \u0641\u0648\u06a9\u0633:<\/strong> \u062c\u0628 \u0627\u06cc\u06a9 \u0688\u0627\u0626\u06cc\u0644\u0627\u06af \u0628\u0627\u06a9\u0633 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 TalkBack \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u062a\u0648\u062c\u06c1 \u06a9\u0648 \u0688\u0627\u0626\u06cc\u0644\u0627\u06af \u0628\u0627\u06a9\u0633 \u06a9\u06cc \u062d\u062f\u0648\u062f \u0645\u06cc\u06ba \u067e\u06be\u0646\u0633 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u063a\u0644\u0637\u06cc \u0633\u06d2 \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u0639\u0646\u0627\u0635\u0631 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062d\u0633\u0627\u0633 \u0628\u0679\u0646:<\/strong> \u0628\u0679\u0646 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644 \u06a9\u0644\u06a9 \u06a9\u06d2 \u0635\u062d\u06cc\u062d \u0646\u062a\u06cc\u062c\u06d2 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2 (\u0635\u0631\u0641 \"\u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba\" \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \"\u062e\u0631\u06cc\u062f\u0627\u0631\u06cc \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\")\u06d4<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"heading-accessibility-audit-checklist\">\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0622\u0688\u0679 \u0686\u06cc\u06a9 \u0644\u0633\u0679<\/h2>\n<p>\u0627\u067e\u0646\u06cc \u0627\u06cc\u067e \u06a9\u0648 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u062c\u0627\u0631\u06cc \u06a9\u0631\u0646\u06d2 \u06cc\u0627 \u0627\u0633\u06d2 \u0627\u06cc\u067e \u0627\u0633\u0679\u0648\u0631 \u067e\u0631 \u062c\u0645\u0639 \u06a9\u0631\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0622\u0688\u0679 \u0686\u06cc\u06a9 \u0644\u0633\u0679 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<h3 id=\"heading-visual-and-typography\">\u0628\u0635\u0631\u06cc \u0627\u0648\u0631 \u0646\u0648\u0639 \u0679\u0627\u0626\u067e<\/h3>\n<ul>\n<li>\n<p><strong>\u0642\u0627\u0628\u0644 \u062a\u0648\u0633\u06cc\u0639 \u0645\u062a\u0646:<\/strong> \u062a\u0645\u0627\u0645 \u0641\u0648\u0646\u0679 \u0633\u0627\u0626\u0632 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4 <code>sp<\/code> (\u06a9\u0628\u06be\u06cc \u0637\u06d2 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0627\u06d4 <code>dp<\/code>) \u062a\u0648 \u0645\u062a\u0646 \u0635\u0627\u0641 \u0637\u0648\u0631 \u067e\u0631 200\u066a \u062a\u06a9 \u067e\u06cc\u0645\u0627\u0646\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0631\u0646\u06af \u06a9\u0627 \u062a\u0636\u0627\u062f:<\/strong> \u06a9\u0645 \u0627\u0632 \u06a9\u0645 <strong>4.5:1<\/strong> \u0633\u0627\u062f\u06c1 \u0645\u062a\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0646\u0627\u0633\u0628 \u0627\u0645\u062a\u0632\u0627\u062c \u0627\u0648\u0631 <strong>3.0:1<\/strong> \u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u0628\u0691\u06d2 \u0645\u062a\u0646 \u0627\u0648\u0631 \u0636\u0631\u0648\u0631\u06cc UI \u0627\u062c\u0632\u0627\u0621 \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0631\u0646\u06af \u06a9\u06cc \u0622\u0632\u0627\u062f\u06cc:<\/strong> \u0635\u0631\u0641 \u0631\u0646\u06af \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0646\u06c1 \u067e\u06c1\u0646\u0686\u0627\u0626\u06cc\u06ba\u06d4 \u0645\u062a\u0646 \u06a9\u06d2 \u0644\u06cc\u0628\u0644\u0632 \u06cc\u0627 \u0645\u0646\u0641\u0631\u062f \u0634\u0628\u06cc\u06c1\u06cc\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06c1\u0645\u06cc\u0634\u06c1 \u0631\u0646\u06af\u06cc\u0646 \u0627\u0634\u0627\u0631\u06d2 \u062c\u0648\u0691\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-interactive-elements-and-touch-targets\">\u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0639\u0646\u0627\u0635\u0631 \u0627\u0648\u0631 \u0679\u0686 \u0627\u06c1\u062f\u0627\u0641<\/h3>\n<ul>\n<li>\n<p><strong>\u0679\u0686 \u06c1\u062f\u0641 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba:<\/strong> \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u06c1\u0631 \u06a9\u0644\u06a9 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06cc\u0627 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u062c\u0632\u0648 \u06a9\u0627 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u06c1\u0679 \u06c1\u062f\u0641 \u06c1\u06d2\u06d4 <strong>48dp x 48dp<\/strong> \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 <code>Modifier.minimumInteractiveComponentSize()<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0642\u0627\u0628\u0644 \u0639\u0645\u0644 \u0648\u0636\u0627\u062d\u062a:<\/strong> \u0648\u0636\u0627\u062d\u062a\u06cc \u0627\u0648\u0631 \u0639\u0645\u0644 \u067e\u0631 \u0645\u0628\u0646\u06cc \u062a\u0631\u0633\u06cc\u0644 <code>contentDescription<\/code> \u062a\u0645\u0627\u0645 \u0641\u06cc\u0686\u0631 \u0622\u0626\u06cc\u06a9\u0646 \u0628\u0679\u0646\u0632 \u0627\u0648\u0631 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0627\u0645\u06cc\u062c\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0679\u0631\u0646\u06af\u0632\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0622\u0631\u0627\u0626\u0634\u06cc \u0639\u0646\u0627\u0635\u0631:<\/strong> \u0633\u06cc\u0679 <code>contentDescription = null<\/code> TalkBack \u06a9\u06d2 \u062a\u0627\u062b\u0631\u0627\u062a \u06a9\u0648 \u0645\u062e\u062a\u0635\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u062e\u0627\u0644\u0635\u062a\u0627\u064b \u0622\u0631\u0627\u0626\u0634\u06cc \u0634\u0628\u06cc\u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0639\u06a9\u0627\u0633\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u067e\u06cc\u0634\u06a9\u0634 <code>onClickLabel<\/code> \u06c1\u0645 \u06a9\u0627\u0631\u0688\u0632\u060c \u0641\u06c1\u0631\u0633\u062a \u0622\u0626\u0679\u0645\u0632\u060c \u0627\u0648\u0631 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0628\u0679\u0646\u0648\u06ba \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0648\u0627\u0636\u062d \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-screen-structure-and-navigation\">\u0627\u0633\u06a9\u0631\u06cc\u0646 \u06a9\u06cc \u0633\u0627\u062e\u062a \u0627\u0648\u0631 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646<\/h3>\n<ul>\n<li>\n<p><strong>\u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0639\u0646\u0648\u0627\u0646:<\/strong> \u0645\u06cc\u0646 \u0633\u06cc\u06a9\u0634\u0646 \u06a9\u06d2 \u0639\u0646\u0648\u0627\u0646\u0627\u062a \u0627\u0648\u0631 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u06c1\u06cc\u0688\u0631 \u0627\u0633 \u0637\u0631\u062d \u062f\u06a9\u06be\u0627\u0626\u06cc\u06ba: <code>Modifier.semantics { heading() }<\/code> \u0641\u0648\u0631\u06cc \u0633\u0645\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u06cc\u0645\u0646\u0679\u06a9 \u0627\u0646\u0636\u0645\u0627\u0645:<\/strong> \u06af\u0631\u0648\u067e \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0628\u0635\u0631\u06cc \u0630\u06cc\u0644\u06cc \u0639\u0646\u0627\u0635\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba (\u062c\u06cc\u0633\u06d2 \u062a\u0639\u0631\u06cc\u0641 \u06cc\u0627 \u0645\u0644\u0679\u06cc \u0679\u06cc\u06a9\u0633\u0679 \u06a9\u0627\u0631\u0688 \u06c1\u06cc\u0688\u0631): <code>Modifier.semantics(mergeDescendants = true)<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0627\u0639\u0644\u0627\u0646\u0627\u062a:<\/strong> \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 UI \u0627\u067e \u0688\u06cc\u0679\u0633 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba: <code>liveRegion = LiveRegionMode.Polite<\/code> \u0644\u06c1\u0630\u0627 TalkBack \u0622\u067e \u06a9\u0648 \u067e\u0633 \u0645\u0646\u0638\u0631 \u0645\u06cc\u06ba \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0637\u0644\u0639 \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0641\u0627\u0631\u0645 \u06a9\u06cc \u0627\u0635\u0644\u0627\u062d:<\/strong> \u0645\u0646\u0627\u0633\u0628 \u0639\u06c1\u062f\u06c1 <code>keyboardType<\/code> \u0627\u0648\u0631 <code>imeAction<\/code> \u062a\u0645\u0627\u0645 \u0679\u06cc\u06a9\u0633\u0679 \u0627\u0646 \u067e\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062a\u0635\u062f\u06cc\u0642\u06cc \u062a\u0627\u062b\u0631\u0627\u062a:<\/strong> \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0641\u0639\u0627\u0644 \u0627\u0646 \u067e\u0679 \u0627\u06cc\u0631\u0631 \u0627\u0633\u0679\u06cc\u0679 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u06cc\u06ba: <code>Modifier.semantics { error(\"...\") }<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-testing-and-verification\">\u062c\u0627\u0646\u0686 \u0627\u0648\u0631 \u062a\u0635\u062f\u06cc\u0642<\/h3>\n<ul>\n<li>\n<p><strong>\u062e\u0648\u062f\u06a9\u0627\u0631 \u06cc\u0648\u0646\u0679 \u0679\u06cc\u0633\u0679\u0646\u06af:<\/strong> \u0631\u0627\u0628\u0637\u06d2 \u06a9\u06d2 \u0627\u06c1\u062f\u0627\u0641 \u0627\u0648\u0631 \u06af\u0645\u0634\u062f\u06c1 \u0644\u06cc\u0628\u0644 \u0631\u06cc\u06af\u0631\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u067e\u06a9\u0691\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0633\u0644\u0633\u0644 \u0627\u0646\u0636\u0645\u0627\u0645 \u0645\u06cc\u06ba \u062a\u062d\u0631\u06cc\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u062f\u0639\u0648\u06d2 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0688\u06cc\u0648\u0627\u0626\u0633 \u067e\u0631 \u062a\u0634\u062e\u06cc\u0635\u06cc \u0622\u0688\u0679:<\/strong> \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u06cc\u0627 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0646\u0642\u0627\u0626\u0635 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0645\u0627\u0645 \u0628\u0691\u06cc \u0627\u06cc\u067e \u0627\u0633\u06a9\u0631\u06cc\u0646\u0648\u06ba \u067e\u0631 Google Accessibility Checker \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u06cc\u0645\u0646\u0679\u06a9 \u062f\u0631\u062e\u062a \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1:<\/strong> \u0636\u0645 \u0634\u062f\u06c1 \u0633\u06cc\u0645\u0646\u0679\u06a9\u0633 \u0627\u0648\u0631 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0627\u06cc\u06a9\u0633\u06cc\u0633\u0628\u06cc\u0644\u0679\u06cc \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u0646\u0688\u0631\u0627\u0626\u06cc\u0688 \u0627\u0633\u0679\u0648\u0688\u06cc\u0648 \u0644\u06d2 \u0622\u0624\u0679 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062f\u0633\u062a\u06cc \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0631\u06cc\u0688\u0631 \u0648\u0627\u06a9 \u062a\u06be\u0631\u0648:<\/strong> \u0635\u0627\u0631\u0641 \u06a9\u0627 \u067e\u0648\u0631\u0627 \u0633\u0641\u0631 (\u0644\u0627\u06af \u0627\u0646\u060c \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc\u060c \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646) \u0645\u06a9\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 TalkBack \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-conclusion-and-next-steps\">\u0646\u062a\u06cc\u062c\u06c1 \u0627\u0648\u0631 \u0627\u06af\u0644\u06d2 \u0627\u0642\u062f\u0627\u0645\u0627\u062a<\/h2>\n<p>\u062c\u06cc\u0679 \u067e\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632 \u0645\u06cc\u06ba \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u0635\u0631\u0641 \u067e\u0631\u0627\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u067e\u0631 \u06a9\u0648\u0688 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u06a9\u0645\u067e\u0648\u0632 \u06a9\u06d2 \u0688\u0648\u0626\u0644 \u0679\u0631\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u0635\u0627\u0631\u0641 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0648 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0628\u0635\u0631\u06cc \u067e\u06a9\u0633\u0644\u0632 \u0627\u0648\u0631 \u0633\u06cc\u0645\u0646\u0679\u06a9 \u0645\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u062f\u0648\u0646\u0648\u06ba \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0627\u0631\u0627\u062f\u06d2 \u06a9\u0648 \u062f\u0631\u0633\u062a \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0639\u0646\u0648\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u0648 \u0646\u0627\u0641\u0630 \u06a9\u0631 \u06a9\u06d2\u060c 48dp \u0679\u0686 \u0679\u0627\u0631\u06af\u0679 \u06a9\u06cc \u0636\u0645\u0627\u0646\u062a \u062f\u06d2 \u06a9\u0631\u060c WCAG \u06a9\u0646\u0679\u0631\u0627\u0633\u0679 \u0631\u06cc\u0634\u0648 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be \u06a9\u0631\u060c \u0627\u0648\u0631 TalkBack \u0627\u0648\u0631 Google Accessibility Scanner \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u067e\u0646\u06d2 \u0627\u0639\u0645\u0627\u0644 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631 \u06a9\u06d2\u060c \u0622\u067e \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06cc Android \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0646\u06cc\u0627 \u0628\u06be\u0631 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0648\u0634 \u0622\u0626\u0646\u062f\u060c \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631\u060c \u0627\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u062f\u06cc\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-essential-resources\">\u0636\u0631\u0648\u0631\u06cc \u0648\u0633\u0627\u0626\u0644<\/h2>\n<p>Android \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0633\u0645\u062c\u06be \u06a9\u0648 \u06af\u06c1\u0631\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06cc\u06c1 \u0636\u0631\u0648\u0631\u06cc \u0648\u0633\u0627\u0626\u0644 \u062f\u06cc\u06a9\u06be\u06cc\u06ba:<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0622\u067e \u06a9\u06cc \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u06cc\u067e \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0628\u0646\u0627\u0646\u0627 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u06a9\u0648\u0626\u06cc\u060c \u0628\u0634\u0645\u0648\u0644 \u0628\u0635\u0631\u06cc\u060c \u0633\u0645\u0627\u0639\u062a\u060c \u0645\u0648\u0679\u0631\u060c \u200b\u200b\u06cc\u0627 \u0639\u0644\u0645\u06cc \u0645\u0639\u0630\u0648\u0631\u06cc \u0648\u0627\u0644\u06d2 \u0627\u0641\u0631\u0627\u062f\u060c \u0627\u06cc\u067e \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u062a \u0686\u06cc\u062a \u0627\u0648\u0631 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0627\u0631\u06cc\u062e\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u0631\u0633\u0627\u0626\u06cc \u06a9\u0648 \u0627\u06a9\u062b\u0631 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0633\u0648\u0686\u0627 \u062c\u0627\u062a\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u063a\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0686\u06cc\u0632 \u06c1\u06d2 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":28700,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-28699","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/28699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=28699"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/28699\/revisions"}],"predecessor-version":[{"id":28701,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/28699\/revisions\/28701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media\/28700"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=28699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=28699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=28699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}