### Godot version

4.0.rc6

### System information

Windows 10

### Issue description

Disabled items of an `ItemList` still trigger `item_selected` and `item_activated` signals when using the mouse. Even though the documentation states that:
> Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter).

Visually, they are as expected (grayed out and can't grab focus).

-----
This seems to be a recurring problem as it has happened in Godot 2 (#5683) and Godot 3 (#37277) as well.
According to the comments in #37277, PR #37285 (#60123) is supposed to fix it for Godot 4. But it still seems to be an issue.

The PR suggests using `disabled` for rendering and `selectable` for actual selection. If that's the final verdict on the matter, then the documentation should be updated to reflect this.

### Steps to reproduce

1. Create a simple scene.
2. Add an `ItemList` and add several items to it via the Inspector. Disable one or more items.
3. Attach a script to the item list with the following code:
```gdscript
extends ItemList


func _ready() -> void:
	item_activated.connect(_on_item_activated)
	item_selected.connect(_on_item_selected)


func _on_item_activated(item_index: int) -> void:
	prints("Item Activated:", item_index)


func _on_item_selected(item_index: int) -> void:
	prints("Item Selected:", item_index)
```
4. Run the project and try selecting/activating a disabled item.
5. Check the Output console for results.

### Minimal reproduction project

[ItemList_DisabledItem_Bug.zip](https://github.com/godotengine/godot/files/10844570/ItemList_DisabledItem_Bug.zip)

#include "item_list.h"
#include "core/config/project_settings.h"
#include "core/os/os.h"
#include "core/string/translation.h"
void ItemList::_shape_text(int p_idx) {
	Item &item = items.write[p_idx];
	item.text_buf->clear();
	if (item.text_direction == Control::TEXT_DIRECTION_INHERITED) {
		item.text_buf->set_direction(is_layout_rtl() ? TextServer::DIRECTION_RTL : TextServer::DIRECTION_LTR);
	} else {
		item.text_buf->set_direction((TextServer::Direction)item.text_direction);
	}
	item.text_buf->add_string(item.text, theme_cache.font, theme_cache.font_size, item.language);
	if (icon_mode == ICON_MODE_TOP && max_text_lines > 0) {
		item.text_buf->set_break_flags(TextServer::BREAK_MANDATORY | TextServer::BREAK_WORD_BOUND | TextServer::BREAK_GRAPHEME_BOUND | TextServer::BREAK_TRIM_EDGE_SPACES);
	} else {
		item.text_buf->set_break_flags(TextServer::BREAK_NONE);
	}
	item.text_buf->set_text_overrun_behavior(text_overrun_behavior);
	item.text_buf->set_max_lines_visible(max_text_lines);
}
int ItemList::add_item(const String &p_item, const Ref<Texture2D> &p_texture, bool p_selectable) {