I like the behavior of checkboxes in OmniOutliner:
Disclaimer: I realize OmniFocus' view filtering may affect the outline semantics in ways I don't yet understand.
[submitted as formal feedback]
- The checkbox on a parent line reflects the state of child lines:
- empty = no children are checked
- hyphen = at least one child is checked & at least one is not
- checked = all children are checked
- Checking/unchecking a parent line propagates to all children.
- Checking a parent task marks the parent task and all subtasks as Done.
- Otherwise, parent tasks and subtasks are independent. Thus, setting all subtasks Done does not automatically set the parent task to Done.
Disclaimer: I realize OmniFocus' view filtering may affect the outline semantics in ways I don't yet understand.
[submitted as formal feedback]