I'm sure there is also a "cleaner" TeX way, but I'm not experienced enough for that.
I think you misunderstood my issue: your Lua way does the same thing than my TeX way: it displays: ONE Cool 2 Cat 3 Mouse but that is NOT what I want. What I want is: 1 Cool 2 Cat 3 Mouse So I need to check if the chapter label has been set empty or not by the user, because it is not empty (let's say the user chose the string "CHAPTER~" for the chapter label) I want to display this: CHAPTER ONE Cool CHAPTER 2 Cat CHAPTER 3 Mouse The way to do that is to check if the variable \currentstructurelabel is empty, so the code must be: \define[1] \MyCommand{\doifelse{\currentsectioncountervalue}{1}{\doifnotemptyelse{\currentstructurelabel}{ONE}{#1}}{#1}} \setuphead[chapter][deepnumbercommand=\MyCommand] \starttext \setuplabeltext[chapter=CHAPTER~] \chapter{Cool} \chapter{Cat} \chapter{Mouse} \stoptext \starttext \setuplabeltext[chapter=] \chapter{Cool} \chapter{Cat} \chapter{Mouse} \stoptext But the problem is that in the second case, even if the chapter label is set empty the command \doifnotemptyelse{\currentstructurelabel} thinks the variable \currentstructurelabel is not empty. So there must be something invisible in it, like a strut or something.