Skip to content

Commit 1494441

Browse files
authored
Merge pull request #107 from AkYML/feature/acccessibilityCustomizations
Feature/acccessibility customizations
2 parents 5ccc97a + 0ff653a commit 1494441

File tree

17 files changed

+82
-30
lines changed

17 files changed

+82
-30
lines changed

YChartsLib/src/main/java/co/yml/charts/common/components/accessibility/BarInfo.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,31 @@ import androidx.compose.ui.Alignment
1515
import androidx.compose.ui.Modifier
1616
import androidx.compose.ui.graphics.Color
1717
import androidx.compose.ui.semantics.semantics
18+
import androidx.compose.ui.unit.TextUnit
1819
import androidx.compose.ui.unit.dp
1920
import androidx.compose.ui.unit.sp
2021

2122
/**
2223
* Composable to display each bar item for given bar chart
2324
* @param axisLabelDescription: Axis label description
2425
* @param barDescription: Bar description
26+
* @param titleTextSize: TextUnit title font size
27+
* @param descriptionTextSize: TextUnit description font size
2528
*/
2629
@Composable
2730
fun BarInfo(
2831
axisLabelDescription: String,
29-
barDescription: String, barColor: Color
32+
barDescription: String, barColor: Color,
33+
titleTextSize:TextUnit,
34+
descriptionTextSize:TextUnit
3035
) {
3136
// Merge elements below for accessibility purposes
3237
Row(modifier = Modifier
3338
.padding(start = 10.dp, end = 10.dp)
3439
.clickable { }
3540
.semantics(mergeDescendants = true) {}, verticalAlignment = Alignment.CenterVertically
3641
) {
37-
Text(axisLabelDescription, fontSize = 12.sp)
42+
Text(axisLabelDescription, fontSize = titleTextSize)
3843
Spacer(modifier = Modifier.width(10.dp))
3944
Column(
4045
modifier = Modifier
@@ -48,7 +53,7 @@ fun BarInfo(
4853
.background(barColor)
4954
.size(20.dp)
5055
)
51-
Text(barDescription, fontSize = 12.sp)
56+
Text(barDescription, fontSize = descriptionTextSize)
5257
}
5358
}
5459
}

YChartsLib/src/main/java/co/yml/charts/common/components/accessibility/BubblePointInfo.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.ui.Alignment
1515
import androidx.compose.ui.Modifier
1616
import androidx.compose.ui.graphics.Color
1717
import androidx.compose.ui.semantics.semantics
18+
import androidx.compose.ui.unit.TextUnit
1819
import androidx.compose.ui.unit.dp
1920
import androidx.compose.ui.unit.sp
2021

@@ -23,20 +24,24 @@ import androidx.compose.ui.unit.sp
2324
* @param axisLabelDescription: Axis label description.
2425
* @param pointDescription: Details of each point on the line.
2526
* @param bubbleColor: Color of each bubble.
27+
* @param titleTextSize: TextUnit title font size
28+
* @param descriptionTextSize: TextUnit description font size
2629
*/
2730
@Composable
2831
fun BubblePointInfo(
2932
axisLabelDescription: String,
3033
pointDescription: String,
31-
bubbleColor: Color
34+
bubbleColor: Color,
35+
titleTextSize: TextUnit,
36+
descriptionTextSize: TextUnit
3237
) {
3338
// Merge elements below for accessibility purposes
3439
Row(modifier = Modifier
3540
.padding(start = 10.dp, end = 10.dp)
3641
.clickable { }
3742
.semantics(mergeDescendants = true) {}, verticalAlignment = Alignment.CenterVertically
3843
) {
39-
Text(axisLabelDescription, fontSize = 12.sp)
44+
Text(axisLabelDescription, fontSize = titleTextSize)
4045
Spacer(modifier = Modifier.width(5.dp))
4146
Column(
4247
modifier = Modifier
@@ -50,7 +55,7 @@ fun BubblePointInfo(
5055
.background(bubbleColor)
5156
.size(20.dp)
5257
)
53-
Text(pointDescription, fontSize = 12.sp)
58+
Text(pointDescription, fontSize = descriptionTextSize)
5459
}
5560
}
5661
}

YChartsLib/src/main/java/co/yml/charts/common/components/accessibility/CombinedChartInfo.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import androidx.compose.ui.Alignment
1818
import androidx.compose.ui.Modifier
1919
import androidx.compose.ui.graphics.Color
2020
import androidx.compose.ui.semantics.semantics
21+
import androidx.compose.ui.unit.TextUnit
2122
import androidx.compose.ui.unit.dp
2223
import androidx.compose.ui.unit.sp
2324
import co.yml.charts.ui.barchart.models.GroupBar
@@ -32,6 +33,8 @@ import co.yml.charts.common.model.Point
3233
* @param axisLabelDescription: Axis label description.
3334
* @param barColorPaletteList: List of each bar colors for a given group bar.
3435
* @param dividerColor: Divider color between each point items.
36+
* @param titleTextSize: TextUnit title font size
37+
* @param descriptionTextSize: TextUnit description font size
3538
*/
3639
@Composable
3740
fun CombinedChartInfo(
@@ -40,15 +43,17 @@ fun CombinedChartInfo(
4043
groupBar: GroupBar?,
4144
axisLabelDescription: String,
4245
barColorPaletteList: List<Color>,
43-
dividerColor: Color
46+
dividerColor: Color,
47+
titleTextSize: TextUnit,
48+
descriptionTextSize: TextUnit
4449
) {
4550
// Merge elements below for accessibility purposes
4651
Row(modifier = Modifier
4752
.padding(start = 10.dp, end = 10.dp)
4853
.clickable { }
4954
.semantics(mergeDescendants = true) {}, verticalAlignment = Alignment.CenterVertically
5055
) {
51-
Text(axisLabelDescription, fontSize = 12.sp)
56+
Text(axisLabelDescription, fontSize = titleTextSize)
5257
Spacer(modifier = Modifier.width(10.dp))
5358
Column(
5459
modifier = Modifier
@@ -66,7 +71,7 @@ fun CombinedChartInfo(
6671
)
6772
.size(10.dp)
6873
)
69-
Text(point.description, fontSize = 12.sp)
74+
Text(point.description, fontSize = descriptionTextSize)
7075
}
7176
Spacer(modifier = Modifier.height(5.dp))
7277
}
@@ -79,7 +84,7 @@ fun CombinedChartInfo(
7984
.background(barColorPaletteList[index])
8085
.size(20.dp)
8186
)
82-
Text(value.description, fontSize = 12.sp)
87+
Text(value.description, fontSize = descriptionTextSize)
8388
}
8489
Spacer(modifier = Modifier.height(5.dp))
8590
}

YChartsLib/src/main/java/co/yml/charts/common/components/accessibility/GroupBarInfo.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import androidx.compose.ui.Alignment
1616
import androidx.compose.ui.Modifier
1717
import androidx.compose.ui.graphics.Color
1818
import androidx.compose.ui.semantics.semantics
19+
import androidx.compose.ui.unit.TextUnit
1920
import androidx.compose.ui.unit.dp
2021
import androidx.compose.ui.unit.sp
2122
import co.yml.charts.ui.barchart.models.GroupBar
@@ -26,20 +27,24 @@ import co.yml.charts.ui.barchart.models.GroupBar
2627
* @param axisLabelDescription: Axis label description.
2728
* @param groupBar: Details of each group bar.
2829
* @param barColorPaletteList: List of each bar colors for a given group bar.
30+
* @param titleTextSize: TextUnit title font size
31+
* @param descriptionTextSize: TextUnit description font size
2932
*/
3033
@Composable
3134
fun GroupBarInfo(
3235
groupBar: GroupBar,
3336
axisLabelDescription: String,
34-
barColorPaletteList: List<Color>
37+
barColorPaletteList: List<Color>,
38+
titleTextSize: TextUnit,
39+
descriptionTextSize: TextUnit
3540
) {
3641
// Merge elements below for accessibility purposes
3742
Row(modifier = Modifier
3843
.padding(start = 10.dp, end = 10.dp)
3944
.clickable { }
4045
.semantics(mergeDescendants = true) {}, verticalAlignment = Alignment.CenterVertically
4146
) {
42-
Text(axisLabelDescription, fontSize = 12.sp)
47+
Text(axisLabelDescription, fontSize =titleTextSize)
4348
Spacer(modifier = Modifier.width(10.dp))
4449
Column(
4550
modifier = Modifier
@@ -54,7 +59,7 @@ fun GroupBarInfo(
5459
.background(barColorPaletteList[index])
5560
.size(20.dp)
5661
)
57-
Text(value.description, fontSize = 12.sp)
62+
Text(value.description, fontSize = descriptionTextSize)
5863
}
5964
Spacer(modifier = Modifier.height(5.dp))
6065
}

YChartsLib/src/main/java/co/yml/charts/common/components/accessibility/LinePointInfo.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.ui.Alignment
1515
import androidx.compose.ui.Modifier
1616
import androidx.compose.ui.graphics.Color
1717
import androidx.compose.ui.semantics.semantics
18+
import androidx.compose.ui.unit.TextUnit
1819
import androidx.compose.ui.unit.dp
1920
import androidx.compose.ui.unit.sp
2021

@@ -23,20 +24,25 @@ import androidx.compose.ui.unit.sp
2324
* @param axisLabelDescription: Axis label description.
2425
* @param pointDescription: Details of each point on the line.
2526
* @param lineColor: Color of each line.
27+
* @param titleTextSize: TextUnit title font size
28+
* @param descriptionTextSize: TextUnit description font size
29+
*
2630
*/
2731
@Composable
2832
fun LinePointInfo(
2933
axisLabelDescription: String,
3034
pointDescription: String,
31-
lineColor: Color
35+
lineColor: Color,
36+
titleTextSize: TextUnit,
37+
descriptionTextSize: TextUnit
3238
) {
3339
// Merge elements below for accessibility purposes
3440
Row(modifier = Modifier
3541
.padding(start = 10.dp, end = 10.dp)
3642
.clickable { }
3743
.semantics(mergeDescendants = true) {}, verticalAlignment = Alignment.CenterVertically
3844
) {
39-
Text(axisLabelDescription, fontSize = 12.sp)
45+
Text(axisLabelDescription, fontSize = titleTextSize)
4046
Spacer(modifier = Modifier.width(5.dp))
4147
Column(
4248
modifier = Modifier
@@ -50,7 +56,7 @@ fun LinePointInfo(
5056
.background(lineColor)
5157
.size(20.dp)
5258
)
53-
Text(pointDescription, fontSize = 12.sp)
59+
Text(pointDescription, fontSize = descriptionTextSize)
5460
}
5561
}
5662
}

YChartsLib/src/main/java/co/yml/charts/common/components/accessibility/SliceInfo.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.compose.runtime.Composable
1212
import androidx.compose.ui.Alignment
1313
import androidx.compose.ui.Modifier
1414
import androidx.compose.ui.semantics.semantics
15+
import androidx.compose.ui.unit.TextUnit
1516
import androidx.compose.ui.unit.dp
1617
import androidx.compose.ui.unit.sp
1718
import co.yml.charts.ui.piechart.models.PieChartData
@@ -20,9 +21,10 @@ import co.yml.charts.ui.piechart.models.PieChartData
2021
* Composable to display each slice for a given pie chart.
2122
* @param slice: Details of each slice in pie/ donut chart.
2223
* @param slicePercentage: Percentage of each slice.
24+
* @param textSize: TextUnit text font size
2325
*/
2426
@Composable
25-
fun SliceInfo(slice: PieChartData.Slice, slicePercentage: Int) {
27+
fun SliceInfo(slice: PieChartData.Slice, slicePercentage: Int, textSize: TextUnit) {
2628
// Merge elements below for accessibility purposes
2729
Row(modifier = Modifier
2830
.clickable { }
@@ -40,7 +42,7 @@ fun SliceInfo(slice: PieChartData.Slice, slicePercentage: Int) {
4042
.weight(1f)
4143
.padding(top = 10.dp, bottom = 10.dp)
4244
) {
43-
Text(slice.sliceDescription(slicePercentage), fontSize = 12.sp)
45+
Text(slice.sliceDescription(slicePercentage), fontSize = textSize)
4446
}
4547
}
4648
}

YChartsLib/src/main/java/co/yml/charts/common/model/AccessibilityConfig.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package co.yml.charts.common.model
22

33
import androidx.compose.ui.graphics.Color
44
import androidx.compose.ui.unit.Dp
5+
import androidx.compose.ui.unit.TextUnit
56
import androidx.compose.ui.unit.dp
7+
import androidx.compose.ui.unit.sp
68
import co.yml.charts.common.utils.ChartConstants
79

810
/**
@@ -13,13 +15,17 @@ import co.yml.charts.common.utils.ChartConstants
1315
* @param popUpTopRightButtonDescription: Content description of the button visible on the accessibility popUp at the top right.
1416
* @param dividerColor: Defines the color for the divider used in the accessibility popUp
1517
* @param dividerThickness: Defines the thickness for the divider in Dp used in the accessibility popUp
18+
* @param titleTextSize: Defines the font-size of titles used in the accessibility popUp
19+
* @param descriptionTextSize: Defines the font-size of descriptions used in the accessibility popUp
1620
*/
1721
data class AccessibilityConfig(
1822
val chartDescription: String = ChartConstants.CHART_DESCRIPTION,
1923
val shouldHandleBackWhenTalkBackPopUpShown: Boolean = true,
2024
val popUpTopRightButtonTitle: String = ChartConstants.POPUP_TOP_RIGHT_BUTTON_TITLE,
2125
val popUpTopRightButtonDescription: String = ChartConstants.POPUP_TOP_RIGHT_BUTTON_DESCRIPTION,
2226
val dividerColor: Color = Color.Gray,
23-
val dividerThickness: Dp = 2.dp
24-
)
27+
val dividerThickness: Dp = 2.dp,
28+
val titleTextSize: TextUnit = 14.sp,
29+
val descriptionTextSize: TextUnit = 14.sp,
30+
)
2531

YChartsLib/src/main/java/co/yml/charts/common/model/LegendsConfig.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import androidx.compose.ui.graphics.Brush
55
import androidx.compose.ui.graphics.Color
66
import androidx.compose.ui.text.TextStyle
77
import androidx.compose.ui.unit.Dp
8+
import androidx.compose.ui.unit.TextUnit
89
import androidx.compose.ui.unit.dp
10+
import androidx.compose.ui.unit.sp
911

1012
/**
1113
* LegendsConfig data class params used in config label in graph.
@@ -19,6 +21,7 @@ import androidx.compose.ui.unit.dp
1921
* */
2022
data class LegendsConfig(
2123
val legendLabelList: List<LegendLabel>,
24+
val textSize: TextUnit = 14.sp,
2225
val gridColumnCount: Int = 1,
2326
val gridPaddingHorizontal: Dp = 8.dp,
2427
val gridPaddingVertical: Dp = 8.dp,

YChartsLib/src/main/java/co/yml/charts/ui/barchart/BarChart.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ fun BarChart(modifier: Modifier, barChartData: BarChartData) {
9292
)
9393
},
9494
chartData[index].description,
95-
chartData[index].color
95+
chartData[index].color,
96+
accessibilityConfig.titleTextSize,
97+
accessibilityConfig.descriptionTextSize
9698
)
9799
ItemDivider(
98100
thickness = accessibilityConfig.dividerThickness,

YChartsLib/src/main/java/co/yml/charts/ui/barchart/GroupBarChart.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,9 @@ fun GroupBarChart(modifier: Modifier, groupBarChartData: GroupBarChartData) {
304304
xAxisData.axisLabelDescription(
305305
xAxisData.labelData(index)
306306
),
307-
barPlotData.barColorPaletteList
307+
barPlotData.barColorPaletteList,
308+
accessibilityConfig.titleTextSize,
309+
accessibilityConfig.descriptionTextSize
308310
)
309311
ItemDivider(
310312
thickness = accessibilityConfig.dividerThickness,

0 commit comments

Comments
 (0)