diff --git a/app/src/main/java/com/example/bondoman/ui/hub/scan/ScanFragment.kt b/app/src/main/java/com/example/bondoman/ui/hub/scan/ScanFragment.kt
index 272003fedbf94b5303584b6b66d7eff4a3fbf1e8..7cf78242d83b2fcfabf2cdb9c5eb8ab873a6de81 100644
--- a/app/src/main/java/com/example/bondoman/ui/hub/scan/ScanFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ui/hub/scan/ScanFragment.kt
@@ -109,6 +109,7 @@ class ScanFragment : Fragment() {
         viewLifecycleOwner.lifecycleScope.launchWhenStarted {
             val header = requireActivity().findViewById<TextView>(R.id.nav_title)
             header.text = getString(R.string.hub_nav_scan)
+            header.contentDescription = "Scan header"
 
             // Check camera permission
             if (!checkCameraPermission()) {
diff --git a/app/src/main/java/com/example/bondoman/ui/hub/stats/StatsFragment.kt b/app/src/main/java/com/example/bondoman/ui/hub/stats/StatsFragment.kt
index 20c8d9ecaecfd02efe4ee8fccbeb6aef4c5468f4..f2ae9b450bad149ff94fbbaafaac1b63c804d19d 100644
--- a/app/src/main/java/com/example/bondoman/ui/hub/stats/StatsFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ui/hub/stats/StatsFragment.kt
@@ -41,6 +41,7 @@ class StatsFragment : Fragment() {
         viewLifecycleOwner.lifecycleScope.launchWhenStarted {
             val header = requireActivity().findViewById<TextView>(R.id.nav_title)
             header.text = getString(R.string.hub_nav_stats)
+            header.contentDescription = "Stats header"
         }
 
         tsViewModel = (requireActivity() as HubActivity).transactionViewModel
diff --git a/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionAdapter.kt b/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionAdapter.kt
index 44fba6b2860d2fd4ff5dcd260e9bc1c2b5cf4f42..f7e630b59800fef70df5ec9e8a7666cad0ee9903 100644
--- a/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionAdapter.kt
+++ b/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionAdapter.kt
@@ -49,6 +49,15 @@ class TransactionAdapter(
             tvCategory.text = tsList[position].category
             tvTitle.text = tsList[position].title
 
+            val editString = "EDIT item id = ${tsList[position].id}"
+            btnEdit.contentDescription = editString
+
+            val deleteString = "DELETE item id = ${tsList[position].id}"
+            btnDelete.contentDescription = deleteString
+
+            val viewLocString = "VIEW LOCATION item id = ${tsList[position].id}"
+            btnLocation.contentDescription = viewLocString
+
             val formatter: NumberFormat = NumberFormat.getNumberInstance(locale)
             val amount = "Rp${formatter.format(tsList[position].amount)}"
             tvAmount.text = amount
diff --git a/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionFragment.kt b/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionFragment.kt
index aa2f36360b92c5cc97ce5d2ad2010b3c73001d06..7e25e9072d0cd19ceb43be968a41104487469106 100644
--- a/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ui/hub/transaction/TransactionFragment.kt
@@ -38,6 +38,7 @@ class TransactionFragment : Fragment(){
         viewLifecycleOwner.lifecycleScope.launchWhenStarted {
             val header = (requireActivity() as HubActivity).findViewById<TextView>(R.id.nav_title)
             header.text = getString(R.string.hub_nav_transaction)
+            header.contentDescription = "Transaction header"
         }
 
         tsViewModel.list.observe(viewLifecycleOwner) { tsList ->
diff --git a/app/src/main/java/com/example/bondoman/ui/hub/twibbon/TwibbonFragment.kt b/app/src/main/java/com/example/bondoman/ui/hub/twibbon/TwibbonFragment.kt
index bb0cff1059d1a8014c9dd7ba835471e41d45a7ee..45800f3dd410f35af8e02f79f7379e73edd4bb9f 100644
--- a/app/src/main/java/com/example/bondoman/ui/hub/twibbon/TwibbonFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ui/hub/twibbon/TwibbonFragment.kt
@@ -96,6 +96,7 @@ class TwibbonFragment : Fragment() {
         viewLifecycleOwner.lifecycleScope.launchWhenStarted {
             val header = requireActivity().findViewById<TextView>(R.id.nav_title)
             header.text = getString(R.string.hub_nav_twibbon)
+            header.contentDescription = "Twibbon header"
 
             // Check camera permission
             if (!checkCameraPermission()) {
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 1e3a067ac64cf0ff8c481b9a169bf834888cd934..e7b2e6672c63d5498bb5097cf29914039d462f4d 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -21,13 +21,14 @@
 
     <LinearLayout
         android:id="@+id/login_cluster"
-        android:layout_width="300dp"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
+        app:layout_constraintTop_toTopOf="parent"
+        android:paddingHorizontal="50dp" >
 
         <TextView
             android:id="@+id/email_title"
@@ -67,12 +68,15 @@
         <EditText
             android:paddingHorizontal="10sp"
             android:id="@+id/password_input"
-            android:layout_width="match_parent"
-            android:layout_height="48dp"
             android:ems="10"
             android:inputType="textPassword"
             android:autofillHints="password"
             android:background="@color/gray"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:maxHeight="48dp"
+            android:minHeight="48dp"
+            android:scrollHorizontally="true"
             android:hint="@string/type_your_password"
             android:textColor="@color/black"/>
 
diff --git a/app/src/main/res/layout/activity_transaction.xml b/app/src/main/res/layout/activity_transaction.xml
index 0029bb2b83c755e11cdd834d1a76cddac7468a18..8f39bfcf657f93730f7719e7fc1d197af13c758e 100644
--- a/app/src/main/res/layout/activity_transaction.xml
+++ b/app/src/main/res/layout/activity_transaction.xml
@@ -35,10 +35,13 @@
 
             <EditText
                 android:id="@+id/title_input"
-                android:layout_width="match_parent"
                 android:hint="@string/type_transaction_title"
-                android:layout_height="48dp"
                 android:background="@color/gray"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:maxHeight="48dp"
+                android:minHeight="48dp"
+                android:scrollHorizontally="true"
                 android:ems="10"
                 android:inputType="text"
                 android:paddingHorizontal="10sp"
@@ -58,7 +61,10 @@
             <EditText
                 android:id="@+id/amount_input"
                 android:layout_width="match_parent"
-                android:layout_height="48dp"
+                android:layout_height="wrap_content"
+                android:maxHeight="48dp"
+                android:minHeight="48dp"
+                android:scrollHorizontally="true"
                 android:background="@color/gray"
                 android:ems="10"
                 android:importantForAutofill="no"
@@ -80,7 +86,10 @@
             <Spinner
                 android:id="@+id/category_input"
                 android:layout_width="match_parent"
-                android:layout_height="48dp"
+                android:layout_height="wrap_content"
+                android:maxHeight="48dp"
+                android:minHeight="48dp"
+                android:scrollHorizontally="true"
                 android:background="@color/gray"
                 android:entries="@array/category_choices" />
 
diff --git a/app/src/main/res/layout/fragment_scan.xml b/app/src/main/res/layout/fragment_scan.xml
index 93af8b874423478647422edf8ebd1f06a5ed5795..3d5f9df24f642e6806b62ac9c789d0b57a385f78 100644
--- a/app/src/main/res/layout/fragment_scan.xml
+++ b/app/src/main/res/layout/fragment_scan.xml
@@ -32,8 +32,12 @@
 
     <Button
         android:id="@+id/image_capture_button"
-        android:layout_width="110dp"
-        android:layout_height="110dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:maxHeight="110dp"
+        android:minHeight="110dp"
+        android:maxWidth="110dp"
+        android:minWidth="110dp"
         android:layout_marginBottom="64dp"
         android:elevation="2dp"
         android:text="@string/scan_nota"
@@ -44,8 +48,12 @@
 
     <Button
         android:id="@+id/select_photo_button"
-        android:layout_width="110dp"
-        android:layout_height="110dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:maxHeight="110dp"
+        android:minHeight="110dp"
+        android:maxWidth="110dp"
+        android:minWidth="110dp"
         android:layout_marginBottom="64dp"
         android:elevation="2dp"
         android:text="@string/select_photo"