> I guess it is simply because nobody though that the leading stars can be > hidden via fontification. > > I think the whole issue can be fixed by changing the call to > org-invisible-p inside org-forward-heading-same-level. org-invisible-p > has an optional third argument to ignore text hidden via fontification. > You can try to make a patch for org-forward-heading-same-level and > similar commands adding that third argument. I looked into the git repository and noticed that org-invisible-p already, thanks to a patch from Nicolas Goaziou (b1822760f4). What I am wondering is whether it would make more sense as an argument for org-forward-heading-same-level and similar commands, or as a (potentially buffer-local) org variable to tweak the behavior, given it's most likely going to affect these functions as interactive commands (see alternative_org.el.diff). This version has the advantage of allowing minor modes to easily mess with Org's behavior buffer-locally. I considered how adding a third argument to org-forward-heading-same-level, but realized that adding another invisibility argument would kinda leak a little complexity, as we'd wind up with TWO invisibility-related arguments (which only differ in subtle ways) and their interactions. So instead I'd recommend to instead allow a distinct, non-nil option for invisible-ok, for example `t', `nil' and `except-folding' (see org.el.diff). This version would be more transparent, as it would not change the behavior of ALL calls in the buffer, but comes at the cost of minor modes needing to overshadow bindings to accomplish the same. I whipped up a quick diff for both versions, and will gladly make a patch once we settled on one, but I wanted to discuss which is preferable before making an uninformed decision on my own.