gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-ios] 08/25: Accessibility


From: gnunet
Subject: [taler-taler-ios] 08/25: Accessibility
Date: Mon, 06 Nov 2023 20:40:15 +0100

This is an automated email from the git hooks/post-receive script.

marc-stibane pushed a commit to branch master
in repository taler-ios.

commit 3559d3680d5df0a1d76302c1b70436619473e457
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sat Nov 4 07:44:59 2023 +0100

    Accessibility
---
 TalerWallet1/Views/Balances/BalanceRowView.swift   |  5 +-
 .../Views/Exchange/ExchangeSectionView.swift       |  1 -
 TalerWallet1/Views/HelperViews/SelectDays.swift    | 80 +++++++++++++---------
 .../Views/HelperViews/TextFieldAlert.swift         |  1 +
 TalerWallet1/Views/Peer2peer/PaymentPurpose.swift  |  6 +-
 TalerWallet1/Views/Peer2peer/SendPurpose.swift     |  7 +-
 6 files changed, 56 insertions(+), 44 deletions(-)

diff --git a/TalerWallet1/Views/Balances/BalanceRowView.swift 
b/TalerWallet1/Views/Balances/BalanceRowView.swift
index f9bdd70..b32d993 100644
--- a/TalerWallet1/Views/Balances/BalanceRowView.swift
+++ b/TalerWallet1/Views/Balances/BalanceRowView.swift
@@ -33,8 +33,9 @@ struct BalanceButton: View {
             }
         }   .disabled(false)
             .buttonStyle(TalerButtonStyle(type: iconOnly ? .plain : .balance, 
aligned: .trailing))
-            .accessibilityElement(children: 
/*@START_MENU_TOKEN@*/.ignore/*@END_MENU_TOKEN@*/)
-            .accessibilityLabel(balanceTitleStr + " " + amountStr)    // TODO: 
CurrencyFormatter!
+            .accessibilityElement(children: .combine)
+            .accessibilityHint("will go to main transactions list")
+//            .accessibilityLabel(balanceTitleStr + " " + amountStr)    // 
TODO: CurrencyFormatter!
     }
 }
 
diff --git a/TalerWallet1/Views/Exchange/ExchangeSectionView.swift 
b/TalerWallet1/Views/Exchange/ExchangeSectionView.swift
index e13ebc1..6e2afab 100644
--- a/TalerWallet1/Views/Exchange/ExchangeSectionView.swift
+++ b/TalerWallet1/Views/Exchange/ExchangeSectionView.swift
@@ -28,7 +28,6 @@ struct ExchangeSectionView: View {
                              currency: currency,            // TODO: 
(balance.available) amount.isZero to disable Deposit-button
                       centsToTransfer: $centsToTransfer)
             }
-            .accessibilityElement(children: .combine)
         } header: {
             BarGraphHeader(stack: stack.push(), currency: currency)
         }
diff --git a/TalerWallet1/Views/HelperViews/SelectDays.swift 
b/TalerWallet1/Views/HelperViews/SelectDays.swift
index 95a7182..9715a7e 100644
--- a/TalerWallet1/Views/HelperViews/SelectDays.swift
+++ b/TalerWallet1/Views/HelperViews/SelectDays.swift
@@ -34,40 +34,54 @@ struct SelectDays: View {
     }
 
     var body: some View {
-        HStack {
-            Button(action: oneDayAction) {
-                if developerMode {
-                    Text(verbatim: "3 Min.")
-                } else {
-                    Text("\(ONEDAY) Day", comment: "1 Day, might get plural 
(e.g. 2..3 Days), 4 letters max., abbreviate if longer")     // TODO: Plural
-                }
-            }.buttonStyle(TalerButtonStyle(type: (selected == ONEDAY) ? 
.prominent : .bordered, dimmed: true))
-                .disabled(!isEnabled)
+        let selectedStr = String(localized: "selected", comment: "VoiceOver 
hint which button is selected")
+        let emptyStr = ""
 
-            Button(action: sevenDayAction) {
-                if developerMode {
-                    Text(verbatim: "1 Hour")
-                } else {
-                    Text("\(SEVENDAYS) Days", comment: "7 Days, always plural 
(3..9), 4 letters max., abbreviate if longer")
-                }
-            }.buttonStyle(TalerButtonStyle(type: (selected == SEVENDAYS) ? 
.prominent : .bordered, dimmed: true))
-                .disabled(!isEnabled || maxExpiration < SEVENDAYS)
+        Section {   // (alignment: .leading)
+            Text("Expires in:")
+                .accessibilityLabel("Choose the expiration duration")
+                .accessibilityAddTraits(.isHeader)
+                .accessibilityFont(.title3)
+            HStack {
+                Button(action: oneDayAction) {
+                    if developerMode {
+                        Text(verbatim: "3 Min.")
+                    } else {
+                        Text("\(ONEDAY) Day", comment: "1 Day, might get 
plural (e.g. 2..3 Days), 4 letters max., abbreviate if longer")     // TODO: 
Plural
+                    }
+                }.buttonStyle(TalerButtonStyle(type: (selected == ONEDAY) ? 
.prominent : .bordered, dimmed: true))
+                    .accessibilityHint((selected == ONEDAY) ? selectedStr : 
emptyStr)
+                    .disabled(!isEnabled)
 
-            Button(action: thirtyDayAction) {
-                if developerMode {
-                    Text(verbatim: "1 Day")
-                } else {
-                    Text("\(THIRTYDAYS) Days", comment: "30 Days, always 
plural (10..30), 4 letters max., abbreviate if longer")
-                }
-            }.buttonStyle(TalerButtonStyle(type: (selected == THIRTYDAYS) ? 
.prominent : .bordered, dimmed: true))
-                .disabled(!isEnabled || maxExpiration < THIRTYDAYS)
-        } // 3 buttons
+                Button(action: sevenDayAction) {
+                    if developerMode {
+                        Text(verbatim: "1 Hour")
+                    } else {
+                        Text("\(SEVENDAYS) Days", comment: "7 Days, always 
plural (3..9), 4 letters max., abbreviate if longer")
+                    }
+                }.buttonStyle(TalerButtonStyle(type: (selected == SEVENDAYS) ? 
.prominent : .bordered, dimmed: true))
+                    .accessibilityHint((selected == SEVENDAYS) ? selectedStr : 
emptyStr)
+                    .disabled(!isEnabled || maxExpiration < SEVENDAYS)
+
+                Button(action: thirtyDayAction) {
+                    if developerMode {
+                        Text(verbatim: "1 Day")
+                    } else {
+                        Text("\(THIRTYDAYS) Days", comment: "30 Days, always 
plural (10..30), 4 letters max., abbreviate if longer")
+                    }
+                }.buttonStyle(TalerButtonStyle(type: (selected == THIRTYDAYS) 
? .prominent : .bordered, dimmed: true))
+                    .accessibilityHint((selected == THIRTYDAYS) ? selectedStr 
: emptyStr)
+                    .disabled(!isEnabled || maxExpiration < THIRTYDAYS)
+            } // 3 buttons
+        }
     }
 }
-
-//struct SelectDays_Previews: PreviewProvider {
-//    static var previews: some View {
-//        @State var expireDays: UInt = 1
-//        SelectDays(selected: $expireDays, maxExpiration: 20)
-//    }
-//}
+// MARK: -
+#if DEBUG
+struct SelectDays_Previews: PreviewProvider {
+    static var previews: some View {
+        @State var expireDays: UInt = 1
+        SelectDays(selected: $expireDays, maxExpiration: 20)
+    }
+}
+#endif
diff --git a/TalerWallet1/Views/HelperViews/TextFieldAlert.swift 
b/TalerWallet1/Views/HelperViews/TextFieldAlert.swift
index f665620..d5639a4 100644
--- a/TalerWallet1/Views/HelperViews/TextFieldAlert.swift
+++ b/TalerWallet1/Views/HelperViews/TextFieldAlert.swift
@@ -19,6 +19,7 @@ struct TextFieldAlert: ViewModifier {
                 VStack {
                     Text(title)
                         .accessibilityFont(.headline)
+                        .accessibilityAddTraits(.isHeader)
                         .padding()
                     TextField(placeholder, text: 
$text).textFieldStyle(.roundedBorder).padding()
                     Divider()
diff --git a/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift 
b/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift
index 6cf2739..d8b49bb 100644
--- a/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift
+++ b/TalerWallet1/Views/Peer2peer/PaymentPurpose.swift
@@ -56,15 +56,12 @@ struct PaymentPurpose: View {
                     Text(verbatim: "\(summary.count)/100")
                 } // maximum 100 characters
 
-                Text("Expires in:")
-                    .accessibilityFont(.title3)
-
                 SelectDays(selected: $expireDays, maxExpiration: THIRTYDAYS)
                     .disabled(false)
                     .padding(.bottom)
 
+                let emptyStr = ""
                 let disabled = (expireDays == 0) || (summary.count < 1)
-
                 NavigationLink(destination: LazyView {
                     SendDone(stack: stack.push(),
                       amountToSend: nil,
@@ -77,6 +74,7 @@ struct PaymentPurpose: View {
                 }
                 .buttonStyle(TalerButtonStyle(type: .prominent))
                 .disabled(disabled)
+                .accessibilityHint(disabled ? "enabled when subject and 
expiration are set" : emptyStr)
 
                 Spacer()
             }
diff --git a/TalerWallet1/Views/Peer2peer/SendPurpose.swift 
b/TalerWallet1/Views/Peer2peer/SendPurpose.swift
index 425cdda..edb3cd9 100644
--- a/TalerWallet1/Views/Peer2peer/SendPurpose.swift
+++ b/TalerWallet1/Views/Peer2peer/SendPurpose.swift
@@ -73,16 +73,13 @@ struct SendPurpose: View {
                         .accessibilityFont(.body)
                 } // maximum 100 characters
 
-                Text("Expires in:")
-                    .accessibilityFont(.title3)
-
                 // TODO: compute max Expiration day from peerPushCheck to 
disable 30 (and even 7)
                 SelectDays(selected: $expireDays, maxExpiration: THIRTYDAYS)
                     .disabled(false)
                     .padding(.bottom)
 
+                let emptyStr = ""
                 let disabled = (expireDays == 0) || (summary.count < 1)    // 
TODO: check amountAvailable
-
                 NavigationLink(destination: LazyView {
                     SendDone(stack: stack.push(),
                       amountToSend: amount,
@@ -94,6 +91,8 @@ struct SendPurpose: View {
                 }
                 .buttonStyle(TalerButtonStyle(type: .prominent))
                 .disabled(disabled)
+                .accessibilityHint(disabled ? "enabled when subject and 
expiration are set" : emptyStr)
+
 
                 Spacer()
             }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]