Hello, I have a question. I am developing multipl...
# compose-ios
m
Hello, I have a question. I am developing multiplatform app using compose multiplatform, and I am struggling with the AlertDialog and Popups. I needed to set
platformLayers = false
as without it there is no background shadowing. But the Issue I have is that neither AlertDialog nor PopupMenu is accessible via accessibility API on iOS. They are accessible without setting
platformLayers
to
false
. Is there any option to have both
platformLayers = false
and accessibility API for my dialogs/popups on iOS?
or eventualy I should not set
platformLayers
to
false
and the background shadowing will be fixed in one of the next releases of the compose multiplatform
ah, now I see that I haven’t latest update https://www.jetbrains.com/help/kotlin-multiplatform-dev/whats-new-compose-1610.html#accessibility-support-improvements so maybe it will be fixed after update to 1.6.10 🤞
i
Disabling
platformLayers
is a temporary parameter in case of issues, it will be removed in a few versions (not sure when exactly yet). Please make sure that this issue is tracked in our GitHub. Regarding shadows - it's tricky one. shadows size are not part of layout/measured size and with separate native view we cannot just draw outside. In 1.6.10 I fixed it by measuring real drawings in addition to layout, but... metal drawing + native layout has some sync issues that happen not in our code/Compose, so it can bring some visual jumps during animation. We have some ideas for future improvements here, but it will cost some performance probably 🙁
lack of a11y without
platformLayers
is known limitation and was one of the reasons of new layers structure introduction
m
Thanks for the update! I’ll check the new version and the potential glitches. I have some time before publishing iOS app and I believe that everything will be fixed until then 🤞
Hello again 👋 after switching to the latest version
1.7.0
I see that there is no background shadowing issue, and the
PopupMenu
accessibility works well without setting
platformLayers=false
. But I still have an issue with
AlertDialogs
as none of the controls inside are accessible by setting
Modifier.testTag
. Is there anything I am missing to be able to have dialogs accessible on iOS side?
👀 1