Stress Indicators: In English, stress is usually marked at the syllable level, not the individual phoneme level. For instance, in the word "incredible," the stress is on the syllable "cred" (/'ɪn.krɛd.ə.bəl/). However, it is technically possible to attach a stress indicator to each phoneme if your interface treats each phoneme as a building block for a larger syllable or word. This would give the user the freedom to stress any part of the word, although this might lead to non-standard pronunciations.
Tones and Accents: Tones are primarily used in tonal languages like Mandarin Chinese, where the pitch contour of a word can change its meaning. English and many other languages are not tonal in this way. Accents can be a factor in languages like French, Spanish, etc., and they often appear at the vowel level. Again, these are generally not features that apply to every individual phoneme but are applied at the syllable or word level.
Combining Buttons: One approach to reduce button count could be to use multi-functional buttons. For instance, a long press on a phoneme button could add stress, or a swipe could add an accent mark. This will require some learning on the user's part but could make for a more compact and rich interface.
Context-Sensitive Options: Another way to reduce clutter is to make the interface context-sensitive. For instance, once a user selects a phoneme, then options for stress, tone, or accents could appear.
https://upload.wikimedia.org/wikipedia/commons/8/8f/IPA_chart_2020.svg
Notes from GPT