In Windows 7, part of the Bluetooth stack was provided by 3rd party (such as Widcomm, Toshiba, etc) add-on software. Some of them did support battery level display for some type of devices (there are multiple way to report battery level). That’s why some people say that it’s supported by Windows, but it may not be the case for everyone.
In Windows 10, they were replaced by Microsoft’s code and it doesn’t (at least, as of 10.0.15063) have capability to show battery level for any type of Bluetooth device.
So, to monitor Bluetooth devices’ battery level on Windows 10, you do need to install additional software. Some major Bluetooth device vendors provide companion application and it shows battery level. I saw Microsoft and Logitech do so for their keyboard/mouse products.
If your device’s vendor doesn’t provide such application, you may want to try “Bluetooth Battery Monitor”, which is available at: https://www.bluetoothgoodies.com/
Full Disclosure: I’m the author of the program.
By the way, you mentioned about GATT battery service, but Windows (again, at least as of 10.0.15063) supports GATT access only over LE connection, and doesn’t allow simultaneous LE/Classic connection either. So, you can access GATT of LE only devices (such as HID devices), but you cannot access your headphone/headsets’s GATT because those devices are connected with Classic only.
Windows 10 update 1809 is finalized (build 17763) and I think it’s a good time to clarify what it does and what it doesn’t.
As far as I’ve tested, it supports only Bluetooth LE (Low Energy) devices that use GATT Battery Service to report battery information. If you are using Bluetooth LE mice/keyboards, those devices are probably OK. But most other devices including headphones, headsets, and Classic mice/keyboards are not supported by Windows 10 and 3rd party software is still needed.
I also tested the latest Insider preview release for the 19H1 update (build 18252), but it’s the same as 1809. Following is the screenshot from 1809. All of these devices are capable of reporting battery information, but Microsoft’s “Bluetooth Mobile Mouse 3600” is the only device Windows 10 can display the information.
If you’re running Windows 10 Build 17639 or above, the battery level will be displayed natively on the Bluetooth & other devices screen in the Settings app.
At the current time, the current Windows 10 stable release is Build 17134.1 (Spring/April 2018 Update). Build 17639 is currently only available to those on the Windows Insiders programme who have opted to Skip Ahead. It would be reasonable to assume however that this would be included in the next Windows 10 feature update later in 2018 (typically ‘Fall’/Autumn).
Further details are available at https://blogs.windows.com/windowsexperience/2018/04/04/announcing-windows-10-insider-preview-build-17639-for-skip-ahead/ under the heading “Bluetooth battery percentage in Settings”.
“Apparently” Windows 7 and Windows 10 have support for checking the battery status. For checking battery status of a Bluetooth device on Windows 7, here’s a tutorial from Lenovo. (https://support.lenovo.com/us/en/solutions/ht070699).
Also, here is an image that shows a control panel item for Windows 10 (though I am not sure of the legitimacy of it [http://imgur.com/gallery/uj2WIPM ])
I cannot find anything on Windows 8/8.1, I checked myself (that’s what I have) and I can’t find anywhere for battery status indicators.
There is very little on this subject, it is a strange missing feature of Windows that they will not fix. In the Windows help community, it has been asked about this and they just quickly replied basically with “It doesn’t exist, fix it yourself (https://answers.microsoft.com/en-us/windows/forum/windows_8-hardware/how-to-determine-the-battery-level-of-a-bluetooth/df8004aa-8b4f-480c-a53d-3048a0bc96be).
I couldn’t find any apps/tools for this either, it’s very strange. Anyway, I hope this little bit helps you, if you’re on Windows 8.1 like me, you’re stuck with guessing. I can’t test Windows 7 or 10 because I don’t have it, if someone could verify my link’s tutorial that would be great. Good luck!
Maybe installing a custom Bluetooth driver/service would add support for a battery indicator, but I’m not sure.